1. 题目
https://leetcode.cn/problems/maximum-subarray/
53. 最大子数组和
2. 解法
2.1 解法一:借助dp数组
1 2 3 4 5 6 7 8 9 10 | public static int maxSubArray( int [] nums) { int [] dp = new int [nums.length]; dp[ 0 ] = nums[ 0 ]; int result = dp[ 0 ]; for ( int i = 1 ; i < nums.length; i++) { dp[i] = Math.max(nums[i], dp[i - 1 ] + nums[i]); result = Math.max(result, dp[i]); } return result; } |
2.2 解法二: 不借助dp数组
1 2 3 4 5 6 7 8 9 10 | public static int maxSubArray2( int [] nums) { int result = nums[ 0 ]; int pre = nums[ 0 ]; for ( int i = 1 ; i < nums.length; i++) { pre = Math.max(nums[i], nums[i] + pre); result = Math.max(result, pre); } return result; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)