leedcode 最大子序数和

   通过参考白马负金羁的关于LeetCode#53暨最大连续子序列和问题博客了解到解答本题的思路。

以下是我的答案,共尝试2次:

class Solution {
    public int maxSubArray(int[] nums) {
        
        int leng=nums.length;
        int sum=0;
        int max=nums[0];
        for(int i=0;i<leng;i++){
            for(int n=i;n<leng;n++){
               sum+=nums[n];
                if(sum>max){
                    max=sum;
                }
            }
            sum=0;
        }
        return max;
    }

}

思路是:一开始,我想先按自己的方式计算,然后发现不知道如何统计默认数组有多少个子数组,然后发现必须先知道每个子数组,然后才能计算其内部的和,这是难以绕开的问题。我思考了一会儿想不出办法所以查了下,看到白马负金羁的关于这道题的讲解。参考了他的立最大值的flag,我将数组第一个数设为最大值的初值,然后我将数组第一个数用循环的方式分别计算前2个数的和、前3个数的和前4个数的和......直到整个数组的和;同时每个和与最大值进行比较,如果和比最大值大就将和的值赋给最大值。循环完毕后计算出第一个值在这个数组中所有的和,然后用同样的方法计算数组剩余的值,即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值