C++ 代码在编码竞赛后找到学生的位置
假设我们有一个包含 n 个元素的数组 A。在一场编程比赛中,总共有 n 名学生将参加,并且在开始之前,他们每个人都有一些正面评价(整数)。A[i] 表示第 i 个学生的评分。比赛结束后,每个学生都会得到一些正整数的位置。我们预计学生将根据他们的评分参加。如果学生 A 的评分严格低于学生 B,则 A 将获得严格高于 B 的位置。我们必须在比赛结束时找到位置。
因此,如果输入像 A = [3, 5, 3, 4, 5],那么输出将是 [4, 1, 4, 3, 1],因为第 2 和第 5 名学生共享最高评分的第一个位置,第四名学生排在第三位,第一名和第三名学生最后分享第四名。
脚步
为了解决这个问题,我们将遵循以下步骤 -
n := size of Afor initialize i := 0, when i < n, update (increase i by 1), do:
d := 1
for initialize j := 0, when j < n, update (increase j by 1), do:
if A[j] > A[i], then:
(increase d by 1)
cout << d << ", "
示例
让我们看看以下实现以更好地理解 -
#include <bits/stdc++.h>using namespace std;
void solve(vector<int> A){
int n = A.size();
for (int i = 0; i < n; i++){
int d = 1;
for (int j = 0; j < n; j++){
if (A[j] > A[i])
d++;
}
cout << d << ", ";
}
}
int main(){
vector<int> A = { 3, 5, 3, 4, 5 };
solve(A);
}
输入
{ 3, 5, 3, 4, 5 }输出结果
4, 1, 4, 3, 1,
以上是 C++ 代码在编码竞赛后找到学生的位置 的全部内容, 来源链接: utcz.com/z/297465.html