C++ 中陣列中異常的數量


在本教程中,我們將編寫一個程式,用於找出給定陣列中的異常數。

給定陣列中的數是異常數,如果這個數與所有其他數之間的絕對差值都大於給定的數 k。我們來看一個示例。

輸入

arr = [3, 1, 5, 7]
k = 1

輸出

4

該數與其他所有數之間的絕對差值都大於 k。

演算法

  • 初始化陣列。

  • 遍歷陣列。

    • 取這個元素,再遍歷陣列。

      • 求出這兩個數之間的絕對差值。

      • 如果沒有一個絕對差值小於或等於 k,則異常數計數器加 1。

實現

以下是上述 C++ 演算法的實現:

#include <bits/stdc++.h>
using namespace std;
int getAnomaliesCount(int arr[], int n, int k) {
   int count = 0;
   for (int i = 0; i < n; i++) {
      int j;
      for (j = 0; j < n; j++) {
         if (i != j && abs(arr[i] - arr[j]) <= k) {
            break;
         }
      }
      if (j == n) {
         count++;
      }
   }
   return count;
}
int main() {
   int arr[] = {3, 1, 5, 7}, k = 1;
   int n = 4;
   cout << getAnomaliesCount(arr, n, k) << endl;
   return 0;
}

輸出

如果你執行上面的程式碼,你將得到以下結果。

4

更新於:2021 年 10 月 26 日

180 次瀏覽

開啟您的 職業生涯

完成課程,取得認證

開始學習
廣告