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;
    }
}
全部评论

相关推荐

昨天 13:08
蚌埠坦克学院 C++
服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务