เราได้รับสามอาร์เรย์ A[], B[] และ C[] เป้าหมายคือการค้นหาสามองค์ประกอบทั้งหมดของอาร์เรย์เหล่านี้ซึ่ง A[i]
มาทำความเข้าใจกับตัวอย่างกัน
ป้อนข้อมูล −
A[]={1,4,5 } B = { 0,2,3 } C = { 0,6,7 }
ผลผลิต − จำนวนแฝด − 4
คำอธิบาย −
Triplets such that A[i]<B[j]<C[k] (1,2,6) , (1,2,7) , (1,3,6) , (1,3,7). Total 4 triplets.
ป้อนข้อมูล
A[]={7,8,9} B = { 4,5,6 } C = { 1,2,3 }
ผลผลิต − จำนวนแฝด:0
คำอธิบาย −
No Triplets that satisfy A[i]<B[j]<C[k]
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
เราใช้อาร์เรย์จำนวนเต็ม A[], B[] และ C[] ที่มีความยาวเท่ากันซึ่งเริ่มต้นด้วยตัวเลขสุ่ม
-
ใช้ตัวแปร N เพื่อเก็บความยาว
-
ฟังก์ชัน countTriplets(int a[],int b[],int c[], int n) รับทั้งสามอาร์เรย์เป็นอินพุตที่มีความยาวเท่ากัน n และคืนค่า triplets ที่ตรงตามเงื่อนไขที่กำหนด
-
สำรวจโดยใช้สามลูปสำหรับแต่ละอาร์เรย์
-
วงนอกสุด 0<=i
-
เปรียบเทียบว่า a[i]
-
ที่ส่วนท้ายของการนับลูปทั้งหมดจะมีแฝดสามซึ่ง a[i]
-
ผลตอบแทนนับเป็นผลลัพธ์
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int countTriplets(int a[],int b[],int c[], int n){ int count = 0; for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++){ for (int k = 0; k < n; k++){ if(a[i]<b[j] && b[j]<c[k]) { count++; } } } } return count; } int main(){ int A[]={ 1,2,3}; int B[]={ 2,3,2}; int C[]={ 4,3,1}; int N=3; //length of array cout <<endl<< "Number of triplets : "<<countTriplets(A,B,C,N); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Number of triplets : 6