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 次浏览

开启您的 职业生涯

完成课程,取得认证

开始学习
广告