C++程式:從課程年份列表中查詢加入年份


假設我們有一個包含n個元素的陣列A。在一所大學裡,每門課程都有一個特殊的組,其名稱等於該課程學生在大學入學的那一年。每個學生都加入其課程的組,並加入所有年份與該學生大學入學年份相差不大於x年的組。x的值沒有給出,但可以從可用資料中確定。A是學生Amal加入的組的列表。根據這些資訊,我們必須找到Amal大學入學的年份。

問題類別

這個問題屬於排序問題。當我們在計算機科學中討論不同的問題解決演算法時,排序是一個非常普遍的問題。顧名思義,排序表示將一組資料按某種方式排列。通常我們可以按非遞減順序或非遞增順序排列它們。或者,排序也可以以預定義的方式進行。對於基於字串的問題,有時我們使用字典序排序來以字典的方式排列字母。有許多不同的排序技術,具有一定的變化及其時間和空間複雜度。迄今為止,基於比較的排序技術的最低時間複雜度是O(n*log n)。但是,也有一些機械排序技術,如桶排序、基數排序、計數排序,它們的時間複雜度是線性的O(n)。有關更多資訊,請點選以下連結:

https://tutorialspoint.tw/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.