## [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)$.