zoukankan      html  css  js  c++  java
  • LeetCode 53. 最大子序和

    题目描述:

    解法一(DP):

    class Solution {
    public:
        int maxSubArray(vector<int>& nums) {
            if(nums.size()==1) return  nums[0];
            int res=nums[0],temp=nums[0];
            for(int i=1;i<nums.size();i++){
                if(temp<=0)
                    temp=nums[i];
                else temp+=nums[i];
                res=max(res,temp);
            }
            return res;
        }
    };

    解法二(分治):

    class Solution {
        //分治算法
        private int divide(int[] nums, int left, int right){
            if(left == right) return nums[left];
            if(left == right - 1){
                int max;
                max = Math.max(nums[left], nums[right]);
                max = Math.max(max, nums[left] + nums[right]);
                return max;
            }
    
            int mid  = (left + right) >> 1;
            int lSum = divide(nums, left, mid - 1);
            int rSum = divide(nums, mid + 1, right);
    
            int max = nums[mid];
            int sum = max;
            for(int i = mid - 1; i >= left; i--){
                sum += nums[i];
                max = Math.max(max, sum);
            }
    
            sum = max;
            for(int j = mid + 1; j <= right; j++){
                sum += nums[j];
                max = Math.max(max, sum);
            }
    
            max = Math.max(max, lSum);
            max = Math.max(max, rSum);
            return max; 
        }
        public int maxSubArray(int[] nums) {
            return divide(nums, 0, nums.length-1);
        }
    }
  • 相关阅读:
    scrapy高级操作
    scrapy多url爬取
    scrapy基础使用
    selenuim
    数据解析
    python字典转为对象,用"."方式访问对象属性
    python AES.MODE_ECB(128位) pkcs5padding 加密算法
    maven
    maven在idea中的配置
    idea使用技巧
  • 原文地址:https://www.cnblogs.com/oneDongHua/p/14264008.html
Copyright © 2011-2022 走看看