C++程序:从课程年份列表中查找加入年份


假设我们有一个包含n个元素的数组A。在一所大学里,每门课程都有一个特殊的组,其名称等于该课程学生在大学入学的那一年。每个学生都加入其课程的组,并加入所有年份与该学生大学入学年份相差不大于x年的组。x的值没有给出,但可以从可用数据中确定。A是学生Amal加入的组的列表。根据这些信息,我们必须找到Amal大学入学的年份。

问题类别

这个问题属于排序问题。当我们在计算机科学中讨论不同的问题解决算法时,排序是一个非常普遍的问题。顾名思义,排序表示将一组数据按某种方式排列。通常我们可以按非递减顺序或非递增顺序排列它们。或者,排序也可以以预定义的方式进行。对于基于字符串的问题,有时我们使用字典序排序来以字典的方式排列字母。有许多不同的排序技术,具有一定的变化及其时间和空间复杂度。迄今为止,基于比较的排序技术的最低时间复杂度是O(n*log n)。但是,也有一些机械排序技术,如桶排序、基数排序、计数排序,它们的时间复杂度是线性的O(n)。有关更多信息,请点击以下链接:

https://tutorialspoint.com/data_structures_algorithms/sorting_algorithms.htm

因此,如果我们问题的输入类似于A = [2014, 2016, 2015],则输出将为2015。

步骤

为了解决这个问题,我们将遵循以下步骤:

b := 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   b := b + A[i]
return b / n

示例

让我们看看以下实现,以便更好地理解:

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int b = 0;
   int n = A.size();
   for (int i = 0; i < n; i++){
      b += A[i];
   }
   return b / n;
}
int main(){
   vector<int> A = { 2014, 2016, 2015 };
   cout << solve(A) << endl;
}

输入

{ 2014, 2016, 2015 }

输出

2015

更新于: 2022年4月7日

113 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.