lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 题目

 

 https://leetcode.cn/problems/maximum-subarray/

53. 最大子数组和

2. 解法

2.1  解法一:借助dp数组 

    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数组

    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;
    }

  

3. 总结

posted on 2023-04-17 14:22  白露~  阅读(7)  评论(0编辑  收藏  举报