C++程式:計算瘋狂作家輸入n個字元後最終剩餘的字元數
假設我們有一個包含n個元素的陣列A,還有一個值c。系統中有一個瘋狂的文字處理器,我們可以輸入字元,但如果連續c秒沒有輸入,所有已寫入的字母都將被刪除。A[i]表示輸入第i個字元的時間。我們必須找到輸入所有n個字元後螢幕上將保留的最終字元數。
例如,如果輸入為A = [1, 3, 8, 14, 19, 20];c = 5,則輸出將為3,因為在第8秒時螢幕上將有3個字元。然後,在第13秒時所有內容都將消失。在第14秒和第19秒輸入另外兩個字元,最後在第20秒輸入一個字元,螢幕上總共剩下3個字元。
步驟
為了解決這個問題,我們將遵循以下步驟:
s := 1 n := size of A for initialize i := 1, when i < n, update (increase i by 1), do: if (A[i] - A[i - 1]) <= c, then: (increase s by 1) Otherwise s := 1 return s
示例
讓我們看看下面的實現以更好地理解:
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int c) {
int s = 1;
int n = A.size();
for (int i = 1; i < n; i++) {
if ((A[i] - A[i - 1]) <= c) {
s++;
} else {
s = 1;
}
}
return s;
}
int main() {
vector<int> A = { 1, 3, 8, 14, 19, 20 };
int c = 5;
cout << solve(A, c) << endl;
}輸入
{ 1, 3, 8, 14, 19, 20 }, 5輸出
3
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP