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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告