力扣 53 最大子序和 貪心 暴力

2021-10-20 01:25:50 字數 735 閱讀 6134

【c++刷題學習筆記目錄】

【c++百萬併發網路通訊-筆記目錄】

貪心

最直觀的就是暴力解法,兩層巢狀for迴圈,類似滑動視窗一樣,計算視窗內的序列之和

第一層迴圈:改變視窗移動位置

第二層迴圈:改變視窗尾端位置,不斷擴大直至尾端對齊陣列尾部

class

solution_01

}return maxsum;}}

;

需要注意的是,上面這種寫法因為j是從i+1開始,所以必然i就不能取到陣列的最後乙個數字,需要單獨考慮最後乙個數字單獨作為陣列的情況,另外還需要考慮陣列中每個數字也能單獨作為陣列的情況

暴力解法時間複雜度是o(n^2),效率很低,【**隨想錄】大佬給出了一種貪心解法,概括來說就是:count為負數的情況,就馬上把count歸零,從下乙個數字開始重新累加,相當於暴力解法的第一層迴圈(改變視窗起點)。因為count<0時,如果繼續累加下一位數字,加和一定會小於剛加上的這個數字本身。

class

solution

return res;}}

;

參考:

貪心演算法:最大子序和

力扣 53 最大子序和

題目描述 簡單 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。題目鏈結 示例 1 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。演算法分析 設dp i 表示以第i個數結尾的子陣列的最大和,那麼只...

力扣53 最大子序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。法一 利用二級指標申請乙個二維陣列 a int malloc sizeof int m fo...

53 最大子序和 力扣(LeetCode)

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。這裡使用的是動態規劃的方法。sums i 表以nums i 結尾的連續子串行的最大值 則有以...