---
# System prepended metadata

title: 1464. Maximum Product of Two Elements in an Array

---

## [1464. Maximum Product of Two Elements in an Array](https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/description/)

# 1. Tóm tắt đề bài

Cho một mảng. Lấy hai phần tử lớn nhất, mỗi phần tử trừ đi một, rồi trả về tích của chúng.

### Giới hạn

$2 \le n \le 500$

# 2. Tóm tắt lời giải

**Độ phức tạp dự tính: $O(n)$, hoặc $O(n*log(n))$ cho những người lười :)**

Cách 1: tìm hai phần tử lớn nhất ($O(n)$):

- Tìm index của phần tử lớn nhất. Nếu có nhiều phần tử lớn nhất và bằng nhau, chọn bất kỳ index nào cũng được. Gọi index này là $i$.
- Trong các số còn lại, mà không có index bằng $i$, tìm phần tử lớn nhất.
- Nhân giá trị của chúng trừ đi 1, với nhau.

Cách 2: sort, $O(n*log(n))$:

- Sort lại dùng hàm có sẵn.
- Lấy $(nums[n - 1] - 1) * (nums[n - 2] - 1)$.

# 3. Code mẫu (C++)

https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/submissions/1118085949/

Phân tích độ phức tạp:
Time: $O(n * logn)$
Aux space: $O(1)$.
