C++程序查找被盗键盘的最小可能数量


假设我们有一个包含n个元素的数组A。有一个电子商店,昨晚发生了抢劫。商店里所有的键盘都按升序从某个整数x开始编号。例如,对于x=4并且商店里有3个键盘,则设备的索引为4、5和6。如果x=10并且有7个,则键盘的索引为10、11、12、13、14、15和16。抢劫后,只剩下n个键盘。它们的索引存储在数组A中。我们需要找到被盗键盘的最小可能数量。

因此,如果输入类似于A = [10, 13, 12, 8],则输出将为2,因为如果x = 8,则被盗键盘的最小数量为2。索引为9和11的键盘被盗了。

步骤

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

sort the array A
n := size of A
return A[n - 1] - A[0] + 1 - n

示例

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

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A) {
      sort(A.begin(), A.end());
int n = A.size();
   return A[n - 1] - A[0] + 1 - n;
}
int main() {
   vector<int> A = { 10, 13, 12, 8 };
   cout << solve(A) << endl;
}

输入

{ 10, 13, 12, 8 }

输出

2

更新于: 2022年3月3日

401 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.