เราได้รับอาร์เรย์ขององค์ประกอบ N เป้าหมายคือการหาคู่ดัชนี (i,j) ที่มีค่าองค์ประกอบเหมือนกันจนทำให้ i!=j. เช่น Arr[i]=Arr[j] และ i!=j ใช้ทำถุงมือที่มีขนาดเท่ากัน ถุงมือไม่มีเหลือ ถุงมือคู่เท่านั้นที่มีประโยชน์ในการขาย
เราจะทำสิ่งนี้โดยรันสองลูปด้วย 0<=i
มาทำความเข้าใจกับตัวอย่างกัน
ป้อนข้อมูล − Arr[]={ 4,3,2,1,2,4 } N=6
ผลผลิต − จำนวนคู่ดัชนีที่มีองค์ประกอบเท่ากัน − 2
คำอธิบาย −
count=0, Arr[]= [ 4,3,2,1,2,4 ] Arr[0]=Arr[5], 0!=5, count=1 Arr[0]=Arr[5]=-1 → [ -1,3,2,1,2,-1 ] Arr[2]=Arr[4], 2!=4, count=2 Arr[2]=Arr[4]=-1 → [ -1,3,-1,1,-1,-1 ] Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2
ป้อนข้อมูล − Arr[]={ 2,2,2,2,2 } N=5
ผลผลิต − จำนวนคู่ดัชนีที่มีองค์ประกอบเท่ากัน − 2
คำอธิบาย −
count=0, Arr[]= [ 2,2,2,2,2 ] Arr[0]=Arr[1], 0!=1, count=1 Arr[0]=Arr[1]=-1 → [ -1,-1,2,2,2 ] Arr[2]=Arr[3], 2!=3, count=2 Arr[2]=Arr[3]=-1 → [ -1,-1,-1,-1,2 ] Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
เราใช้อาร์เรย์จำนวนเต็ม Arr[] ที่เริ่มต้นด้วยตัวเลขสุ่มสำหรับขนาดของถุงมือ> 0
-
ใช้ตัวแปร n ซึ่งเก็บความยาวของ Arr[].
-
ฟังก์ชัน countPairs(int arr[], int n) รับอาร์เรย์ความยาวเป็นอินพุตและส่งกลับคู่ที่มีขนาดเท่ากันและดัชนีต่างกัน
-
Traverse array ใช้ two for loops สำหรับแต่ละองค์ประกอบของคู่
-
วงนอกจาก 0<=i
-
ตรวจสอบว่า arr[i] และ arr[j] เป็นค่าบวกหรือไม่ ถ้า arr[i]==arr[j] ให้นับการเพิ่มขึ้น (ฉันจะไม่เท่ากับ j ตามเงื่อนไขที่กำหนดไว้ในลูป ไม่จำเป็นต้องเปรียบเทียบ )
-
ตอนนี้ตั้งค่า arr[i]=arr[j]=-1 เพื่อลบออกจากการเปรียบเทียบเพิ่มเติม
-
เมื่อสิ้นสุดลูปทั้งหมดจะนับจำนวนถุงมือทั้งหมด
-
คืนค่าการนับเป็นผลลัพธ์
ตัวอย่าง
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // Function to count equal elements to make pair of gloves int countPairs(int arr[], int n){ int count = 0; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(arr[i]==arr[j] && arr[i]>0 && arr[j]>0){ count++; arr[i]=arr[j]=-1; } } } return count; } int main(){ int arr[] = { 1,2,4,2,1,2,4 }; int n = sizeof(arr) / sizeof(arr[0]); cout <<"Pair of gloves ( Equal element pairs ):"<<countPairs(arr, n); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Pair of gloves ( Equal element pairs ):3.