O(n)的题解
2025-03-16 07:54:58
发布于:广东
49阅读
0回复
0点赞
看了一下,目前题解都是 的,我也不知道为什么能过。
由于题目并没有说要输出数组,那么不妨考虑一种思路: 遍历数组,如果遍历到 是 ,就让 往前跳 个位置。
最坏时间复杂度:
代码实现起来就简单了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,a[200009]{};
cin>>n>>k;
for(int i = 1;i<=n;++i){
cin>>a[i];
}
int sum = 0;
for(int i = 1;i<=n;++i){
if(a[i] == 1){
i+=k-1;//k-1是因为上面还有一个i++
sum++;
}
}
cout<<sum;
}
全部评论 1
题解都是 的,只不过你没分析出来复杂度
2025-04-23 来自 北京
0懂了
结果就是赛时写“O(n)”的 大王
赛后质疑数据的 小王
2025-04-23 来自 广东
0
有帮助,赞一个