lectcode 陣列 最大自序和

2021-10-02 03:15:14 字數 977 閱讀 6854

給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和

輸入: [-2,1,-3,4,-1,2,1,-5,4],

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

int maxsubarray(vector& nums) 

}return max;

}

int maxsubarray(vector& nums) 

int maxsubarrayhelper(vector&nums, int left, int right)

int mid = (left + right) / 2;

int leftsum = maxsubarrayhelper(nums, left, mid);

//注意這裡應是mid + 1,否則left + 1 = right時,會無線迴圈

int rightsum = maxsubarrayhelper(nums, mid + 1, right);

int midsum = findmaxcrossingsubarray(nums, left, mid, right);

int result = max(leftsum, rightsum);

result = max(result, midsum);

return result;

}int findmaxcrossingsubarray(vector&nums, int left, int mid, int right)

int rightsum = int_min;

sum = 0;

//注意這裡i = mid + 1,避免重複用到nums[i]

for (int i = mid + 1; i <= right; i++)

return (leftsum + rightsum);

tyvj p1305 最大自序和

輸入乙個長度為n的整數序列,從中找出一段不超過m的連續子串行,使得整個序列的和最大。例如 1,3,5,1,2,3 當m 4時,s 5 1 2 3 7 當m 2或m 3時,s 5 1 6 戳戳戳 一開始用的樸素的 錯的 演算法 過了 9個點。然後決定考慮 優化。讓我們來枚舉子序列中的 最後一位,用s ...

leetcode 53 最大自序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。思路 簡單題,維...

leetcode 53 最大自序和

題目 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解 原始碼 掃...