402.Continuous Subarray Sum
1.Description(Medium)
2.Code
public ArrayList<Integer> continuousSubarraySum(int[] A) {
ArrayList<Integer> result = new ArrayList<Integer>();
if (A == null || A.length == 0) {
return result;
}
int currentSum = 0;
int maxValue = Integer.MIN_VALUE;
int maxStart = 0;
int maxEnd = 0;
int start = 0;
for (int i = 0; i < A.length; ++i) {
if (currentSum < 0) {
currentSum = A[i];
start = i;
}else {
currentSum += A[i];
}
if (maxValue < currentSum) {
maxValue = currentSum;
maxStart = start;
maxEnd = i;
}
}
result.add(maxStart);
result.add(maxEnd);
return result;
}Last updated