这个题怎么说?求数组最大的子序列和。
非一次AC,代码功力太需要提高了。注意边界。感觉这代码写得太差。
附上代码:
class Solution { public: int maxSubArray(int A[], int n) { // Note: The Solution object is instantiated only once and is reused by each test case. int sum = 0; if(n == 1) { return A[0]; } int * value = new int[n]; if(A[0] <= 0) value[0] = 0; else { value[0] = A[0]; if(value[0] > sum) sum = value[0]; } for(int i = 1;i < n;i++) { if(A[i] + value[i-1] > 0) { value[i] = A[i] + value[i-1]; if(value[i] > sum) sum = value[i]; } else { value[i] = 0; } } if(sum == 0) { sum = -999999999; for(int i = 0;i < n;i++) { if(A[i] > sum) sum = A[i]; } } return sum; } };