ได้รับอาร์เรย์ Arr[] ความยาว n ต้องการนับทริปเล็ต (i,j,k) ที่ i อินพุต: arr[] = {1, 2, 2, 3, 4}, N = 5 เอาต์พุต: 4 คำอธิบาย: (1,2,3), (1,2,3), (1,3,4), (2,2,4) อินพุต: arr[] = {2, 2, 2, 2, 2}, N = 5 เอาต์พุต: 0 (2+2=4 ≠ 2)ตัวอย่าง
แนวทาง
arr[i]+arr[j]==arr[k] || arr[i]+arr[k]==arr[j] || arr[k]+arr[j]==arr[i]ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[], int n) {
int count = 0;
for (int i = 0; i < n-2; i++) {
for (int j = i+1; j < n-1; j++) {
for (int k = j+1; k < n; k++) {
if (arr[i]+arr[j]==arr[k] || arr[j]+arr[k]==arr[i] || arr[k]+arr[i]==arr[j]) {
count++;
}
}
}
}
return count;
}
int main() {
int Arr[] = {1, 2, 2, 3, 4};
int N = 5;
cout << endl << "Number of triplets: " << countTriplets(Arr, N);
return 0;
}
ผลลัพธ์
Number of triplets: 4