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 A

for 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

回到顶部