赞
踩
题目:
思路:
(1):
大神思路: 力扣
重点在于理解“无后效性”
代码:
- public class Solution {
-
- public int maxSubArray(int[] nums) {
- int len = nums.length;
- // dp[i] 表示:以 nums[i] 结尾的连续子数组的最大和
- int[] dp = new int[len];
- dp[0] = nums[0];
-
- for (int i = 1; i < len; i++) {
- if (dp[i - 1] > 0) {
- dp[i] = dp[i - 1] + nums[i];
- } else {
- dp[i] = nums[i];
- }
- }
-
- // 也可以在上面遍历的同时求出 res 的最大值,这里我们为了语义清晰分开写,大家可以自行选择
- int res = dp[0];
- for (int i = 1; i < len; i++) {
- res = Math.max(res, dp[i]);
- }
- return res;
- }
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。