最大子陣列

2021-10-05 21:39:14 字數 1102 閱讀 1793

給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。

樣例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,則說...