Leetcode Maximum Subarray

動規求最大一維連續子數組,f[i] 表示以i結尾的子數組和。4ms

#define MAX(a, b) ((a) > (b) ? (a) : (b))
int maxSubArray(int* nums, int numsSize) {
    int* f = malloc(sizeof(int) * numsSize);
    int i, res = f[0] = nums[0];
    for (i = 1 ; i < numsSize ; i++) {
        f[i] = MAX(f[i-1] + nums[i], nums[i]);
        res = MAX(f[i], res);
    }
    free(f);
    return res;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章