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
廣告