伍六七带你学算法 入门篇 ——最大子序和
生活随笔
收集整理的這篇文章主要介紹了
伍六七带你学算法 入门篇 ——最大子序和
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
力扣 53. 最大子序和
難度簡單
給定一個(gè)整數(shù)數(shù)組 nums ,找到一個(gè)具有最大和的連續(xù)子數(shù)組(子數(shù)組最少包含一個(gè)元素),返回其最大和。
示例:
輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續(xù)子數(shù)組 [4,-1,2,1] 的和最大,為 6。
進(jìn)階:
如果你已經(jīng)實(shí)現(xiàn)復(fù)雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。
public class _53_最大子序和 {/*** 解題思路:* 將數(shù)組遍歷,從頭到尾的順序。* 從第一個(gè)數(shù)字開始累加,如果和為正數(shù),則不斷地和上一個(gè)數(shù)進(jìn)行比較,* 若和變成了負(fù)數(shù),則和要從新計(jì)算,然后和之前計(jì)算出的最大的和進(jìn)行比較。* 最后將和返回* @param nums* @return*/public static int maxSubArray(int[] nums) {int res = nums[0];int sum = 0;for(int num : nums){if(sum>0){sum+=num;}else{sum=num;}res = Math.max(res,sum);}return res;}public static void main(String[] args) {int nums[] = {-2,1,-3,4,-1,2,1,-5,4};System.out.println(maxSubArray(nums));}
}
總結(jié)
以上是生活随笔為你收集整理的伍六七带你学算法 入门篇 ——最大子序和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Myeclipse中项目没有代码错误提示
- 下一篇: 伍六七带你学算法 入门篇——最后一个单词