leetcode最大子序和

题目为:

在这里插入图片描述

刚开始使用暴力求解的话,用max记录最大值,再设一个值记录当前数组和的值,通过比较求出最大子序和,但是时间复杂度和空间复杂度都很大,所以可以使用动态规划法,设置一个当前数current,若当前数与数组下一个之和大于0,则是对最大和有利且设置一个sum返回最大值,代码如下:

public class Solution {  
  public int MaxSubArray(int[] nums)
   { int current=nums[0];       
    int sum=nums[0];     
       for(int i=1;i<nums.Length;i++)
        {           
 if(current<0)current=nums[i];          
         else current+=nums[i];            
         if(current>sum)sum=current;          
           }      
             return sum; 
          }}

运行结果为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值