和为S的连续正数序列

和为S的连续正数序列

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

import java.util.ArrayList;
public class Solution {
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
       ArrayList<ArrayList<Integer>> slist=new ArrayList<>();
       ArrayList<Integer> list=new ArrayList<>(); 
        if(sum<3){//不满足至少两个连续正数合为sum
            return slist;
        }
       int small=1,big=2;//初始化双指针
       int mid=(1+sum)/2;
       int cursum=small+big;
       while(small<mid){
           if(cursum==sum){
              list=res(small,big); 
              slist.add(list);
           }
           while(cursum>sum&&small<mid){
              cursum=cursum-small; 
              small++;
                if(cursum==sum){
                list=res(small,big); 
                slist.add(list);
              }
           }
               big++;
               cursum=cursum+big;
       }
       return slist;
    }

    //添加连续正数序列中的元素
    public ArrayList<Integer> res(int small,int big){
        ArrayList<Integer> list=new ArrayList<>();
        for(int i=small;i<=big;i++){
            list.add(i);
        }
        return list;
    }

}
全部评论

相关推荐

01-07 07:54
已编辑
门头沟学院 前端工程师
点赞 评论 收藏
分享
01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务