Cho mảng số nguyên, tìm tất cả bộ ba (i, j, k) khác nhau sao cho tổng bằng 0. Ví dụ: {0,1,-1,2,2,-4,3,4} → các bộ ba: (0,1,-1), (0,-4,4), (1,-4,3), (2,2,-4).
Phương pháp: Ba vòng lặp lồng nhau (vét cạn)
- Ba vòng lặp i < j < k.
- Kiểm tra arr[i]+arr[j]+arr[k] == 0.
- In ra và đánh dấu tìm thấy.
Phức tạp O(n³) – chỉ phù hợp mảng nhỏ.
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
void findTripletsZero(int arr[], int n) {
bool found = false;
for (int i=0;i
Kết quả
0 1 -1
0 -4 4
1 -4 3
2 2 -4
Lưu ý: có thể tối ưu O(n²) bằng sort + two pointers.