题解 | #和为S的连续正数序列#

和为S的连续正数序列

http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe

1.检查输入,根据题目要求sum最小值为3
2.连续正数序列,双循环遍历序列,以和小于sum作为第二个for循环的终止条件,并将满足条件的值入集合,并计算集合的元素和;
3.如果2中的集合元素和==sum,且元素个数超过2个,则将集合添加到最终结果集;
//和为S的连续正数序列
public ArrayList<ArrayList<integer> > FindContinuousSequence(int sum) {
ArrayList<ArrayList<integer>> res = new ArrayList<>();
if(sum < 3){
return res;
}
for(int i = 1; i < sum; i++){
int sumTemp = i;
ArrayList<integer> list = new ArrayList<>();
for(int j = i; j < sum; j++){
if(sumTemp <= sum){
sumTemp += j;
list.add(j);
}else break;
}
if(list.size() >= 2){
int temp = 0;
for(int k = 0; k < list.size(); k++){
temp+=list.get(k);
}
if(temp == sum){
res.add(list);
}
}
}
return res;
}</integer></integer></integer>

全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务