給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。
樣例1:
輸入:[−2,2,−3,4,−1,2,1,−5,3]
輸出:6
解釋:符合要求的子陣列為[4,−1,2,1],其最大和為 6。
樣例2:
輸入:[1,2,3,4]
輸出:10
解釋:符合要求的子陣列為[1,2,3,4],其最大和為 10。
要求時間複雜度為o(n)
子陣列最少包含乙個數
解決方法1:
public class solution {
/*** @param nums: a list of integers
* @return: a integer indicate the sum of max subarray
*/public int maxsubarray(int nums) {
// write your code here
int res=nums[0];
int maxsum=nums[0];
for (int i=1;i簡單粗暴
解決方法2:
public class solution {
/** * @param nums: a list of integers
* @return: a integer indicate the sum of max subarray
public int maxsubarray(int nums) {
// write your code here
for (int i=1;inums[i]=nums[i]+nums[i-1];
int min=0;
int maxsum=nums[0];
for (int i=0;imaxsum=math.max(maxsum,nums[i]-min);
if (nums[i]min=nums[i];
return maxsum;
思路:前面找乙個數i,後面找乙個數j,使得兩數之差sum[j]-sum[i]最大。
最大子陣列
1.問題描述 問題 乙個有n個整數元素的一維陣列 a 0 a 1 a 2 a n 1 這個陣列中子陣列之和的最大值是多少?該子陣列是連續的。例如 陣列 1,2,3,5,3,2 返回8 陣列 0,2,3,5,1,2 返回9。網上有稱之為最大子串行和,亦有稱連續子陣列最大和。個人覺得叫最大子串行和不太妥...
最大子陣列
import math 暴力 defforce array list 暴力取得最大子陣列 param array 引數陣列 return 最大的連續和 for i in range len array max num array i for j in range i 1 len array ifsu...
最大子陣列
給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。樣例給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 注意子陣列最少包含乙個數 挑戰要求時間複雜度為o n 1 假設前k個數的和sum已經計算出來 2 對於第k 1個數來說,如果sum 0,則說...