首页 > 代码库 > 和为S的连续正数序列
和为S的连续正数序列
题目:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
思路:要想连续和等于sum,那么起始值一定小于sum/2,比如sum=20,那么10+11很明显就大于20,所范围就是1到sum/2,然后遍历找符合条件的。。。(但个人认为复杂度略高。。。。。。)
public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>(); if(sum<2) return res; for(int i = 1; i <= sum/2 ; i++ ){ ArrayList<Integer> temp = new ArrayList<Integer>(); int count=0; for(int j=i; j < sum ;j++){ count+=j; temp.add(j); if(count > sum) break; else if(count==sum){ res.add(temp); break; } } } return res; }
和为S的连续正数序列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。