C++程式查詢我們錯過的哪一集


假設我們有一個包含n個元素的陣列A。有n集電視劇。它們編號從1到n。我們已經觀看了陣列A中列出的劇集,但錯過了一集。我們必須找到我們錯過了哪一集。

問題類別

程式設計中的各種問題可以透過不同的技術解決。為了解決問題,我們首先必須設計一個演算法,為此,我們必須詳細研究特定問題。如果同一個問題反覆出現,則可以使用遞迴方法;或者,我們也可以使用迭代結構。if-else和switch case等控制語句可用於控制程式中邏輯的流程。有效地使用變數和資料結構可以提供更簡單的解決方案以及輕量級、低記憶體需求的程式。我們必須檢視現有的程式設計技術,例如分治法、貪心演算法、動態規劃,並找出它們是否可以。這個問題我們可以用一些基本的邏輯或蠻力方法來解決。請參閱以下內容以更好地理解該方法。

因此,如果我們問題的輸入類似於A = [3, 8, 10, 1, 7, 9, 6, 5, 2],則輸出將為4。

步驟

為了解決這個問題,我們將遵循以下步驟:

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

示例

讓我們看看以下實現以更好地理解:

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int sum = 0;
   int n = A.size() + 1;
   for (int i = 0; i < A.size(); i++){
      sum += A[i];
   }
   return (n * (n + 1) / 2 - sum);
}
int main(){
   vector<int> A = { 3, 8, 10, 1, 7, 9, 6, 5, 2 };
   cout << solve(A) << endl;
}

輸入

{ 3, 8, 10, 1, 7, 9, 6, 5, 2 };

輸出

4

更新於: 2022年4月7日

129 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.