1. 程式人生 > >lintcode --最大子陣列(c++實現)

lintcode --最大子陣列(c++實現)

class MaxSubArray {
public:
    int maxSubArray(vector<int> &nums) {
        // write your code here

        // 判空
        if (nums.size() == 0) {
            return 0;
        }
        int tmpsum = nums[0];
        int sum = tmpsum;
        // 臨時和和0比較,大於0說明當前數值可以加進去,小於0則說明當前這個數值太小,抵消了前面的累加和,更新臨時和為當前值
// sum 記錄上一個被抵消的區間的和,並且取每次的較大者 for (int i = 1; i < nums.size(); i++) { tmpsum > 0 ? tmpsum += nums[i] : tmpsum = nums[i]; tmpsum > sum ? sum = tmpsum : sum; } return sum; } };