C++中右侧NGEs的数量


给定一个数组和目标元素的索引。我们需要计算在其右侧大于给定元素的元素数量。让我们来看一个例子。

输入

arr = [2, 3, 5, 1, 4, 2, 6]
index = 3

输出

3

目标索引元素为1。在其右侧有三个元素,即4、2、6,它们大于1。

算法

  • 初始化数组和目标元素的索引。
  • 如果索引大于或等于数组的长度,则返回-1。
  • 编写一个循环,从给定索引的下一个元素迭代。
    • 如果元素大于目标元素,则递增计数。
  • 返回计数。

实现

以下是C++中上述算法的实现

#include <bits/stdc++.h>
using namespace std;
int getNextGreaterElementsCount(int arr[], int n, int index) {
   if (index >= n) {
      return -1;
   }
   int count = 0;
   for (int i = index + 1; i < n; i++) {
      if (arr[index] < arr[i]) {
         count += 1;
      }
   }
   return count;
}
int main() {
   int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
   int n = 8, index = 1;
   cout << getNextGreaterElementsCount(arr, n, index) << endl;
   return 0;
}

输出

如果运行上述代码,则会得到以下结果。

6

更新于:2021年10月26日

347 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.