关注
我觉得第二题要剪枝,比如k=1,你[1,2,3,3,4]的话i从1开始到3为止,i=2的时候就要可以从4开始,中间的上一次计算过了,只需加一下,没考试,上一下自己的程序,不知道对不对
int main() { int n, k;
cin >> n >> k; int v[n]; for(int i=0; i<n; ++i) {
cin >> v[i];
} int last = 0; int result = n;//最少有4个 for(int start = 0; start < n - 1; ++start) { int cnt = 1; int record[10];//record[i+1]表示i出现的次数,0-9 memset(record, 0, sizeof(record)); for(int i = start; i <= last; ++i) { if(record[v[i] + 1]==0)
record[v[i] + 1] = 1;//初始只出现了一次 else ++record[v[i] + 1];
}
result += (last - start); for(int end = last + 1; end < n; ++end) {
record[v[end]+1]++; if(record[v[end]+1] > k) {//重复次数超过k last = end - 1;//下一次从last+1开始,因为下一次到last也都可以 break;
} else if(end < n - 1) {
++result;
} else { if(record[v[end]+1] <= k)
++result;
last = end;//到达最后一个了 }
}
}
cout<<result<<endl;
}
查看原帖
点赞 2
相关推荐
查看6道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从投递到OC,你用了多久 #
4668次浏览 39人参与
# 总结:哪家公司最喜欢泡池子 #
169515次浏览 603人参与
# 厦门银行科技岗值不值得投 #
19332次浏览 427人参与
# 我的求职进度条 #
994469次浏览 6583人参与
# 哪些公司面试还在问八股? #
1128次浏览 21人参与
# 哪一刻你突然觉得实习“有点值了” #
3251次浏览 44人参与
# HR面都在聊什么? #
1246次浏览 21人参与
# 实习教会我的事 #
73963次浏览 511人参与
# 一人一道大厂面试题 #
129439次浏览 1321人参与
# 生物制药/化工校招攻略 #
85830次浏览 347人参与
# 实习生如何通过转正 #
136234次浏览 1488人参与
# 哪些公司一直卡在简历筛选 #
108283次浏览 374人参与
# 大厂无回复,继续等待还是奔赴小厂 #
350606次浏览 2009人参与
# 实习生活中那些难忘的瞬间 #
333419次浏览 3399人参与
# 现在还是0offer,延毕还是备考 #
1365064次浏览 7953人参与
# 我想象的实习vs现实的实习 #
333264次浏览 2298人参与
# 有深度的简历长什么样? #
54261次浏览 732人参与
# 反问环节如何提问 #
138710次浏览 2734人参与
# 夸夸我的求职搭子 #
262020次浏览 1983人参与
# 入职第一天,你准备什么时候下班 #
118617次浏览 519人参与
# 拿到offer之后,可以做些什么 #
105953次浏览 514人参与
