lintcode-medium-Continuous Subarray Sum

Given an integer array, find a continuous subarray where the sum of numbers is the biggest. Your code should return the index of the first number and the index of the last number. (If their are duplicate answer, return anyone)

Give [-3, 1, 3, -3, 4], return [1,4].

这道题和maximum subarray基本一样,区别在于需要记录index

public class Solution {
    /**
     * @param A an integer array
     * @return  A list of integers includes the index of the first number and the index of the last number
     */
    public ArrayList<Integer> continuousSubarraySum(int[] A) {
        // Write your code here

        ArrayList<Integer> result = new ArrayList<Integer>();

        if(A == null || A.length == 0)
            return result;

        int index1 = 0;
        int index2 = 0;
        int sum = A[0];
        int max = A[0];
        int res1 = 0;
        int res2 = 0;

        for(int i = 1; i < A.length; i++){
            if(sum < 0){
                sum = 0;
                index1 = i;
                index2 = i;
            }

            sum += A[i];

            if(sum > max){
                max = sum;
                index2 = i;
                res1 = index1;
                res2 = index2;
            }
        }

        result.add(res1);
        result.add(res2);
        return result;
    }
}
时间: 2024-11-08 04:22:32

lintcode-medium-Continuous Subarray Sum的相关文章

Continuous Subarray Sum II(LintCode)

Continuous Subarray Sum II Given an circular integer array (the next element of the last element is the first element), find a continuous subarray in it, where the sum of numbers is the biggest. Your code should return the index of the first number a

LeetCode:Continuous Subarray Sum

523. Continuous Subarray Sum Add to List Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where

Continuous Subarray Sum II

Given an circular integer array (the next element of the last element is the first element), find a continuous subarray in it, where the sum of numbers is the biggest. Your code should return the index of the first number and the index of the last nu

[LintCode] Continuous Subarray Sum 连续子数组之和

Given an integer array, find a continuous subarray where the sum of numbers is the biggest. Your code should return the index of the first number and the index of the last number. (If their are duplicate answer, return anyone) Have you met this quest

Continuous Subarray Sum

Given an integer array, find a continuous subarray where the sum of numbers is the biggest. Your code should return the index of the first number and the index of the last number. (If their are duplicate answer, return anyone) 和Maximum Subarray的差别在于仅

leetcode 523. Continuous Subarray Sum

Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer. Example 1: Input:

523. Continuous Subarray Sum

Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer. Example 1: Input:

523. Continuous Subarray Sum是否有连续和是某数的几倍

[抄题]: Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer. Example 1: I

LintCode &quot;Continuous Subarray Sum II&quot;

Flip over your mind: in rotated subarray case, we can simply cut the continuous smallest subarray. class Solution { public: /** * @param A an integer array * @return A list of integers includes the index of * the first number and the index of the las

lintcode 中等题:continuous subarray sum 联系子数组之和

题目 连续子数组求和 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, 1, 3, -3, 4], 返回[1,4]. 解题 法一:直接暴力,时间复杂度O(N2),时间超时 public class Solution { /** * @param A an integer array * @return A list of integers includes the i