41 最大子陣列

2021-07-30 18:50:07 字數 721 閱讀 5645

4.19

(1)最開始想到的就是用很暴力的演算法,從第乙個數開始算。一直到最後乙個,毫無疑問時間複雜度的是n^2。

但是沒想到居然過了耶。

public class solution 

if(nums.length ==1)

int length = nums.length;

int max = nums[0];

for(int i = 0; imax)

}if(tmp > max)

}return max;

}}

(2) 第二種演算法,只掃瞄一遍,複雜度為o(n)

tmp用來記錄累計和的大小,如果累計和為負數,則置零。

public class solution 

if(nums.length ==1)

int length = nums.length;

int max = nums[0];

int tmp = 0;

for(int i = 0; i < length; i++)

else if(tmp < 0)

}return max;

}}

(3)從網上學習到的分治演算法,最大值要不出現在左側,要不出現在右側,要不跨越中點。這樣可以採用遞迴。

時間複雜度是o(nlogn)

不想寫。

41 最大子陣列

原題 給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。注意事項 子陣列最少包含乙個數 樣例 給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 挑戰 要求時間複雜度為o n 標籤 貪心領英 陣列子陣列 列舉法1 include 2 includ...

題41 最大子陣列

the subarray should contain at least one number.yes class solution public param nums a list of integers return a integer indicate the sum of max subar...

LintCode 41 最大子陣列

給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。注意事項 子陣列最少包含乙個數 樣例 給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 挑戰 要求時間複雜度為o n 不考慮挑戰的要求的話,需要兩層迴圈,外層迴圈從開始遍歷到結束,內層迴圈用來尋...