查詢 C++ 中陣列中每個元素的超過者數量


假設給定一個數組 A。我們必須查詢該陣列中每個元素的超過者數量。超過者是當前元素陣列右側出現的大於它的元素。假設 A = {2, 7, 5, 3, 0, 8, 1},超過者為 {4, 1, 1, 1, 2, 0, 0},所以 2 在其右側有 4 個大於它的數字,其他人遵循相同規則。解決方案非常簡單,將有兩個巢狀迴圈,對於每個元素,它將計算出超過者數量,然後將這些超過者儲存在另一個數組中。

示例

 線上演示

#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

更新於: 2019-10-21

128 次瀏覽

開啟你的職業生涯

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.