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

หา Surpasser Count ของแต่ละ Element ใน Array ใน C++

มี Array A ต้องหา Surpasser Count ของแต่ละ Element Surpasser คือ Elements ที่มากกว่าและอยู่ด้านขวาของ Current Element ตัวอย่าง A={2,7,5,3,0,8,1} Surpassers={4,1,1,1,2,0,0} หมายถึง 2 มี 4 ตัวด้านขวาที่มากกว่า

วิธีง่าย: 2 Nested Loops นับ Surpassers สำหรับแต่ละ Element เก็บใน Array อีกตัว

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

#include <iostream>
using namespace std;

void gerSurpassers(int arr[], int surpassers[], int n) {
    for(int i = 0; i<n; i++) {
        int count = 0;
        for(int j = i+1; j<n; j++) {
            if(arr[j] > arr[i])
                count++;
        }
        surpassers[i] = count;
    }
}

void displayArray(int arr[], int n) {
    for(int i = 0; i<n; i++) {
        cout << arr[i] << " ";
    }
    cout << "\n";
}

int main() {
    int arr[] = {2, 7, 5, 3, 0, 8, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    int surpassers[n];
    cout << "Elements :"; displayArray(arr, n);
    gerSurpassers(arr, surpassers, n);
    cout << "Surpassers:"; displayArray(surpassers, n);
}

ผลลัพธ์

Elements :2 7 5 3 0 8 1 Surpassers:4 1 1 1 2 0 0