package com.example.demo;
/**
* 53. 最大子序和
* 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
* <p>
* 示例:
* <p>
* 輸入: [-2,1,-3,4,-1,2,1,-5,4],
* 輸出: 6
* 解釋: 連續子數組 [4,-1,2,1] 的和最大,爲 6。
* 進階:
* <p>
* 如果你已經實現複雜度爲 O(n) 的解法,嘗試使用更爲精妙的分治法求解。
*/
public class Lc53 {
//貪心算法
public static int maxSubArray(int[] nums) {
int ans = nums[0];
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (sum >= 0) {
sum += nums[i];
} else {
sum = nums[i];
}
ans = Math.max(ans, sum);
}
return ans;
}
public static void main(String[] args) {
int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
System.out.println(maxSubArray(nums));
}
}
Lc53_ 最大子序和
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.