LeetCode - 918 解題紀錄
題目: LeetCode - 918. Maximum Sum Circular Subarray
題目說明
給一個陣列,求此陣列的最大子陣列和。( 可以循環 )
解題思路
想法: 最大子陣列和可能會有兩種情況,一種是沒有跨過頭尾,就是單純的最大子陣列和。另一種是有跨過頭尾,這時的和就是
陣列和 - 最小子陣列和
。作法: 使用一個迴圈得到最大子陣列和及最小子陣列和,最後比對
sum - mn
及max
何者較大即可。需要注意的是,若是最小值mn
和sum
相等,代表整個陣列都是負的,這時需要直接回傳max
。
參考解法
1 | // fast IO |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論