• 凡是正值 皆有贡献 保留


    https://leetcode-cn.com/problems/maximum-subarray/

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

    A subarray is a contiguous part of an array.

    Example 1:

    Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
    Output: 6
    Explanation: [4,-1,2,1] has the largest sum = 6.
    

    Example 2:

    Input: nums = [1]
    Output: 1
    

    Example 3:

    Input: nums = [5,4,-1,7,8]
    Output: 23
    

    Constraints:

    • 1 <= nums.length <= 105
    • -104 <= nums[i] <= 104

    Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

    给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    子数组 是数组中的一个连续部分。

    示例 1:

    输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
    输出:6
    解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
    

    示例 2:

    输入:nums = [1]
    输出:1
    

    示例 3:

    输入:nums = [5,4,-1,7,8]
    输出:23
    

    提示:

    • 1 <= nums.length <= 105
    • -104 <= nums[i] <= 104

    进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。

    func maxSubArray(nums []int) int {
    	n := len(nums)
    	m := nums[0]
    	possible := m
    	for i := 1; i < n; i++ {
    		v := nums[i]
    		if possible <= 0 {
    			possible = v
    		} else {
    			possible += v
    		}
    		if possible > m {
    			m = possible
    		}
    	}
    	return m
    }
    

      

  • 相关阅读:
    tomcat配置数据源
    Spring 配置详解
    典型的软件开发模型
    600字让你读懂Git
    JVM的自愈能力
    Maven的pom.xml文件详解
    如何使用Log4j
    掌握jQuery插件开发,这篇文章就够了
    CSS Gradient详解
    CSS Transition
  • 原文地址:https://www.cnblogs.com/rsapaper/p/16197302.html
Copyright © 2020-2023  润新知