JZ41

和为S的连续正数序列

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

思路

使用双指针进行求解

Code

import java.util.ArrayList;
public class Solution {
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
       ArrayList<ArrayList<Integer> > ret = new ArrayList<>();
        if(sum < 3) return ret;
        int lp = 1, rp = 2;
        int curNum = 3;
        ArrayList<Integer> tmp;
        while(lp < rp)
        {
            if(curNum == sum)
            {
                tmp = new ArrayList<>();
                for(int i = lp ; i <= rp; i++)
                {
                    tmp.add(i);
                }
                ret.add(tmp);
                curNum -= lp;
                lp++;
            }else if(curNum < sum)
            {
                rp++;
                curNum += rp; 
            }
            else if(curNum > sum)
            {
                curNum -= lp;
                lp++;
            }
        }
        return ret;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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