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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP