1. 程式人生 > >LeetCode題庫解答與分析——#53.最大子序和MaximumSubarray

LeetCode題庫解答與分析——#53.最大子序和MaximumSubarray

#53 最大子序和 Maximum Subarray

給定一個序列(至少含有 1 個數),從該序列中尋找一個連續的子序列,使得子序列的和最大。

例如,給定序列 [-2,1,-3,4,-1,2,1,-5,4]
連續子序列 [4,-1,2,1] 的和最大,為 6

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1]

 has the largest sum = 6.

擴充套件練習:

若你已實現複雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。

個人思路:

每次把當前數字作為子序列的最後一位,如果之前的求和結果大於0,則與之相加為新的求和結果,如果結果比最大值大則取代之

程式碼(JavaScript):

var maxSubArray = function(nums) {
    var sum=nums[0];
    var max=sum;
    for(var i=1;i<nums.length;i++){
        sum=Math.max(sum+nums[i],nums[i]);
        max=Math.max(max,sum);        
    }
    return max;
};

相關推薦

LeetCode解答分析——#53.大子MaximumSubarray

#53 最大子序和 Maximum Subarray給定一個序列(至少含有 1 個數),從該序列中尋找一個連續的子序列,使得子序列的和最大。例如,給定序列 [-2,1,-3,4,-1,2,1,-5,4],連續子序列 [4,-1,2,1] 的和最大,為 6。Find the c

LeetCode解答分析——#221. 大正方形MaximumSquare

在一個由0和1組成的二維矩陣內,尋找只包含1的最大正方形,並返回其面積。例如,給出如下矩陣:1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4.Given a 2D binary matrix filled with 0's and 1'

LeetCode解答分析——#120. 三角形小路徑Triangle

給出一個三角形(資料陣列),找出從上往下的最小路徑和。每一步只能移動到下一行中的相鄰結點上。比如,給你如下三角形:[ [2], [3,4], [6,5,7], [4,1,8,3] ] 則從上至下最小路徑和為 11(即,2 + 3 + 5 + 1 

LeetCode解答分析——#11.盛多水的容器ContainerWithMostWater

#11 盛最多水的容器 Container With Most Water給定 n 個正整數 a1,a2,...,an,其中每個點的座標用(i, ai)表示。 畫 n 條直線,使得線 i 的兩個端點處於(i,ai)和(i,0)處。請找出其中的兩條直線,使得他們與 X 軸形成的

LeetCode解答分析——#95. 不同的二叉查詢樹 IIUniqueBinarySearchTreeII

Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1...n.For example,Given n = 3, your program should retur

LeetCode解答分析——#7.顛倒整數ReverseInteger

#7 顛倒整數 Reverse Integer給定一個範圍為 32 位 int 的整數,將其顛倒。Given a 32-bit signed integer, reverse digits of an integer.例 1:輸入: 123 輸出: 321 例 2:輸入:

LeetCode解答分析——#107. 二叉樹的層次遍歷 IIBinaryTreeLevelOrderTraversal

給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉節點所在層到根節點所在的層,逐層從左向右遍歷)例如:給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自自底向上的層次遍

LeetCode解答分析——#70. 爬樓梯ClimbingStairs

#70. 爬樓梯 Climbing Stairs你正在爬樓梯。需要 n 步你才能到達頂部。每次你可以爬 1 或 2 個臺階。你有多少種不同的方式可以爬到樓頂呢?You are climbing a stair case. It takes n steps to reach t

LeetCode解答分析——#108. 將有序陣列轉換為二叉搜尋樹ConvertSortedArrayToSearchBinaryTree

將一個按照升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。此題中,一個高度平衡二叉樹是指一個二叉樹每個節點的左右兩個子樹的高度差的絕對值不超過1。示例:給定有序陣列: [-10,-3,0,5,9], 一種可行答案是:[0,-3,9,-10,null,5],它可以表示成下面

LeetCode解答分析——#101. 對稱二叉樹SymmetricTree

給定一個二叉樹,檢查它是否是它自己的映象(即,圍繞它的中心對稱)。例如,這個二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面這個 [1,2,2,null,3,null,3] 則不是:

LeetCode解答分析——#103. 二叉樹的鋸齒形層次遍歷BinaryTreeZigzagLevelOrderTraversal

給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。例如:給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回鋸齒形

leetcode的python實現 刷筆記53:大子(多種解法)

給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

leetcode53. 大子(Maximum Subarray)

變量 最終 code res com 定義 最大的 array ray 解題思路: 定義兩個變量res和curSum,其中res保存最終要返回的結果,即最大的子數組之和,curSum初始值為0,每遍歷一個數字num,比較curSum + num和num中的較大值存入cur

LeetCode53. 大子

題目連結:https://leetcode-cn.com/problems/maximum-subarray/description/ 題目描述 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例 輸入: [-2,

LeetCode 53 大子--python 動態規劃

給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

leetCode 53 大子-------python

''' 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。 進階: 如果你已經實現複雜度為 O

leetcode-53- 大子(maximum subarray)-java

題目及用例 package pid053; /*最大子序和 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,

[LeetCode]53. 大子(Maximum suborder and)Java

一、題目: LeetCode地址 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4

Leetcode——53.大子

@author: ZZQ @software: PyCharm @file: leetcode53_最大子序和.py @time: 2018/11/26 12:39 要求:給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,

Leetcode(53) 大子

題目描述 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。 解題思路 該題是讓求解最大和的連續子陣