zoukankan      html  css  js  c++  java
  • 053 Maximum Subarray 最大子序和

    给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。
    例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4],
    连续子序列 [4,-1,2,1] 的和最大,为 6。

    详见:https://leetcode.com/problems/maximum-subarray/description/

    Java实现:

    方法一:暴力解

    class Solution {
        public int maxSubArray(int[] nums) {
            int size=nums.length;
            if(size==0||nums==null){
                return Integer.MIN_VALUE;
            }
            int maxSum=Integer.MIN_VALUE;
            for(int i=0;i<size;++i){
                int curSum=0;
                for(int j=i;j<size;++j){
                    curSum+=nums[j];
                    if(curSum>maxSum){
                        maxSum=curSum;
                    }
                }
            }
            return maxSum;
        }
    }
    

    方法二:

    class Solution {
        public int maxSubArray(int[] nums) {
            int size=nums.length;
            if(size==0||nums==null){
                return Integer.MIN_VALUE;
            }
            int maxSum=nums[0];
            int curSum=nums[0];
            for(int i=1;i<size;++i){
                if(curSum<0){
                    curSum=nums[i];
                }else{
                    curSum+=nums[i];
                }
                if(curSum>maxSum){
                    maxSum=curSum;
                }
            }
            return maxSum;
        }
    }
  • 相关阅读:
    Codeforces 787B. Not Afraid
    Codeforces 670D. Magic Powder
    POJ 1979 Red and Black
    T1215:迷宫
    POJ 1163 The Triangle
    洛谷P1219 八皇后
    T1212:LETTERS
    T1317:【例5.2】组合的输出
    洛谷P1706 全排列问题
    codevs 5971 打击犯罪
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8697233.html
Copyright © 2011-2022 走看看