LintCode - 子数组之和(普通)

版权声明:本文为博主原创文章,未经博主允许不得转载。

难度:容易
要求:

给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置

样例

给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].

思路

    /**
     * @param nums: A list of integers
     * @return: A list of integers includes the index of the first number 
     *          and the index of the last number
     */
    public ArrayList subarraySum(int[] nums) {
        int start = 0;
        int end = 0;
        int sum = 0;
        labe:for(int i = 0; i < nums.length; i++){
            sum = 0;
            start = i;
            for(int j = i; j < nums.length; j++){
                sum += nums[j];
                if(sum == 0){
                    end = j;
                    break labe;
                }
            }
        }
        
        ArrayList list = new ArrayList();
        list.add(start);
        list.add(end);
        return list;
    }

你可能感兴趣的:(LintCode - 子数组之和(普通))