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