查找 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP