七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

最大子数相加:毛毛虫遍历法(七七瞎编的)

写作时间:2026-07-05 20:12:23

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

分析题目

他是什么?

连续子树相加,求最大和

怎么做?

所有数相加,然后和最大数比较

public class MaxSubarraySum {
    public static int maxSubArray(int[] nums) {
        if (nums == null || nums.length == 0) {
            return 0; // 如果数组为空或长度为0,返回0
        }
        int sumMax = nums[0];
        int current = nums[0];

        for (int i = 1; i < nums.length; i++) {
//            当前数组和加上当前元素小于当前元素,则重新开始计算子数组
            current = Math.max(nums[i], current + nums[i]);
//            若添加当前元素后,当前数组和变大,则更新最大子数组和
            sumMax = Math.max(sumMax, current);
        }

        return sumMax;
    }
}

这个遍历方法真的很像毛毛虫向前爬!!!

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents