Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับคู่ดัชนีที่มีค่าเท่ากันในอาร์เรย์ ใน C++

ได้รับอาร์เรย์ N ตัว ต้องการนับคู่ดัชนี (i,j) ที่ i≠j และ Arr[i] = Arr[j] > 0 ใช้สำหรับจับคู่ถุงมือขนาดเท่ากัน

ตัวอย่าง

อินพุต: Arr[] = {4, 3, 2, 1, 2, 4}, N = 6

เอาต์พุต: 2

ขั้นตอน: จับคู่ (4,4) → ทำเครื่องหมาย -1, จับคู่ (2,2) → ทำเครื่องหมาย -1

อินพุต: Arr[] = {2, 2, 2, 2, 2}, N = 5

เอาต์พุต: 2 (จับคู่ได้ 2 คู่ เหลือ 1 ตัว)

แนวทาง

  • ลูปซ้อน i=0..n-2, j=i+1..n-1
  • ถ้า arr[i]==arr[j] && arr[i]>0 เพิ่มตัวนับ และกำหนด arr[i]=arr[j]=-1 (ลบออกจากการพิจารณา)

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

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