关注
第一题好巧妙,学习了.贴一下我的
#include <iostream>
#include<vector>
#include<climits>
using namespace std;
int main()
{
//前缀和思想,加剪枝
int n;
int k;
int max_val = INT_MIN;
while(cin>>n){
vector<int> nums(n, 0);
cin>>nums[0];
for(int i=1;i<n;++i){
cin>>nums[i];
nums[i] += nums[i-1];
}
cin>>k;
for(int i=n-1;i>=0;--i){
if(max_val<i+1 && nums[i]%k==0){//剪枝
max_val = i+1;
break;//剪枝
}
}
for(int i=0;i<n;++i){
for(int j=n-1;j>=i;--j){
if(max_val<j-i){
if((nums[j]-nums[i])%k==0){//剪枝
max_val = j-i;
}
}
else//剪枝
break;
}
}
cout<<max_val<<endl;
}
return 0;
}
第二题
#include <iostream>
#include<vector>
#include<climits>
using namespace std;
int main()
{
//思路:分析样例发现,当某个数大于其他数的和时,只用从这个最大数开始.然而因为该数大于其他书的总和,所以分完其他所有人以后,还是有书剩余.不符合条件.
//代码较简单
int n;
int sum;
while(cin>>n){
vector<int> nums(n, 0);
bool flag = true;
for(int i=0;i<n;++i){
cin>>nums[i];
sum += nums[i];
}
for(int i=0;i<n;++i){
if(nums[i]*2>sum){
cout<<"No"<<endl;
flag = false;
break;
}
}
if(flag)
cout<<"Yes"<<endl;
}
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
7471次浏览 169人参与
# 异地恋该为对方跳槽吗 #
16881次浏览 97人参与
# 京东TGT #
8320次浏览 70人参与
# 硬件人更看重稳定还是高薪 #
32228次浏览 181人参与
# 职场新人生存指南 #
318708次浏览 6739人参与
# 面试经验谈 #
7268次浏览 111人参与
# 签约/解约注意事项 #
654116次浏览 3998人参与
# 不考虑转正,实习多久合适 #
22497次浏览 116人参与
# 哪些公司校招卡第一学历 #
55660次浏览 211人参与
# 滴滴工作体验 #
21717次浏览 123人参与
# 硬件人你反向读研了吗 #
38359次浏览 608人参与
# 国央企笔面经互助 #
124731次浏览 1068人参与
# 租房找室友 #
24221次浏览 131人参与
# 得物求职进展汇总 #
91674次浏览 791人参与
# 你遇到过哪些神仙同事 #
68069次浏览 623人参与
# 机械人选offer,最看重什么? #
88805次浏览 541人参与
# 哪些公司面试官让你印象深刻? #
259471次浏览 2733人参与
# 材料进Fab厂真的劝退吗? #
34792次浏览 158人参与
# 机械求职避坑tips #
39770次浏览 353人参与
# 学历or实习经历,哪个更重要 #
109953次浏览 740人参与
# 硬件人秋招的第一个offer #
64173次浏览 1079人参与