zoukankan      html  css  js  c++  java
  • LeetCode题解No53——“最大子序和”

    LeetCode题解

    No53

    难度:Easy

    题目描述:

    /*
        给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
    
    示例:
    
    输入: [-2,1,-3,4,-1,2,1,-5,4]
    输出: 6
    解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
    进阶:
    
    如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/maximum-subarray
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
     */
    

    题目思路

       本题是一道比较简单的动态规划的题型。重点主要是维护pre和max的值。不懂的话多看两遍代码,跟着代码一步一步读就可以理解。

    代码执行

    public class No53 {
       public static void main(String[] args) {
           int[] nums = {-2,1,-3,4,-1,2,1,-5,4};
           System.out.println(maxSubArray(nums));
       }
       public static int maxSubArray(int[] nums){
           // 动态规划
           int n = nums.length;
           // 用一个pre来表示前面的值
           int pre = nums[0];
           // 维护一个最大值max
           int max = nums[0];
           for (int i = 1; i < n; i++) {
               // pre 维护的是 前面最大的一个数据,如果当前的数据和pre的和比nums[i]更小,就将其更新为nums[i]
               pre = Math.max(nums[i],pre + nums[i]);
               max = Math.max(pre,max);
           }
           return max;
       }
    }
    

    纠错

    执行结果

  • 相关阅读:
    win10 uwp 商业游戏 1.1.5
    PHP ftp_exec() 函数
    PHP ftp_delete() 函数
    PHP ftp_connect() 函数
    PHP ftp_close() 函数
    PHP ftp_chmod() 函数
    grant 之后是否要跟着 flush privileges
    [TJOI2015]概率论
    win10 uwp 商业游戏 1.1.5
    Total Commander 显示文件包含文件名扩展
  • 原文地址:https://www.cnblogs.com/mlz031702145/p/13688450.html
Copyright © 2011-2022 走看看