文件名称:leetcode叫数-leetcode:利特码Java
文件大小:529KB
文件格式:ZIP
更新时间:2024-07-20 10:07:45
系统开源
leetcode叫数 leetcode Leetcode Java 部分简要思路 P053_MaximumSubarray 经典的DP最大子序列和。 对一个序列[a1, a2, a3, ..., an],要求最大子序列和,可以等价于求max(以a1为起点的序列的最大序列和,以a2为起点的序列的最大和,...,以an为起点的序列的最大和)。而对于第i项ai,不难推出,以ai为起点的序列最大和为: max_sum(i) = max(ai, max_sum(i+1) + ai) 然后递推出max_sum(1),也就是最后的结果了。 依此,我们可以写一个for循环,从数组的最后往前,依次递推,并保存最大值: public int maxSubArray(int[] nums) { int max = nums[nums.length - 1]; int lastMaxSum = nums[nums.length - 1]; for (int i = nums.length - 2; i >= 0; i--) { int ai = nums[i]; lastMaxSum = lastMaxSum