一、題目:連續子數組的最大和 題目:輸入一個整型數組,數組里有正數也有負數。數組中一個或連續的多個整數組成一個子數組。求所有子數組的和的最大值。要求時間復雜度為O(n)。例如輸入的數組為{1,-2,3,10,-4,7,2,-5},和最大的子數組為{3,10,-4,7,2},因此輸出為該子 ...
看到這個題目,我們首先想到的是求出這個整型數組所有連續子數組的和,長度為n的數組一共有 n n 個子數組,因此要求出這些連續子數組的和最快也需要O n 的時間復雜度。但是題目要求的O n 的時間復雜度,因此上述思路不能解決問題。 看到O n 時間復雜度,我們就應該能夠想到我們只能對整個數組進行一次掃描,在掃描過程中求出最大連續子序列和以及子序列的起點和終點位置。假如輸入數組為 , , , , , ...
2012-05-04 12:25 3 10203 推薦指數:
一、題目:連續子數組的最大和 題目:輸入一個整型數組,數組里有正數也有負數。數組中一個或連續的多個整數組成一個子數組。求所有子數組的和的最大值。要求時間復雜度為O(n)。例如輸入的數組為{1,-2,3,10,-4,7,2,-5},和最大的子數組為{3,10,-4,7,2},因此輸出為該子 ...
1. 問題描述 輸入一個整形數組,求數組中連續的子數組使其和最大。比如,數組x 應該返回 x[2..6]的和187. 2. 問題解決 我們很自然地能想到窮舉的辦法,窮舉所有的子數組的之和,找出最大值。 窮舉法 i, j的for循環表示x[i..j],k的for循環用來計算x[i..j ...
今天在QQ群里,聽大牛們去面試,提到面試很多是校招的算法,但是當時沒想出來,其中一個題目是給定一組數,找出和最大的連續子串。 我想了想看自己能不能解決這個問題,這個問題難點不再如何找出,而在於能否在復雜度為O(n)的情形下解決這個問題。 沒想出來,就問百度老師了,在這記錄一下。 印象比較 ...
前言 這幾天一直在讀Weiss的數據結構書(Data Structures and Algorithm Analysis in C:Second Edition),其中第二章是關於簡單的算法分析(引入大O記號等工具),以“求連續子數組的最大和問題”為例,進行了一些說明和闡釋。最大子數組和問題 ...
它呢?例如:{6,-3,-2,7,-15,1,2,2},連續子向量的最大和為8(從第0個開始,到第3個為止)。給一個數組,返回它的 ...
整理自 http://blog.csdn.net/v_JULY_v/article/details/6444021 求子數組的最大和題目描述:輸入一個整形數組,數組里有正數也有負數。數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。求所有子數組的和的最大值。要求時間復雜度為O(n ...
問題: 求解數組中連續一段子數組和的最大值。例如:{31,-41,59,26,-53,58,97,-93,-23,84},最大值為59+26-53+58+97=187 思路: 計算出任意i到j之間連續子數組的和再比較必然能得到最大值,但時間復雜度為O(n^2),我們希望能找出 ...
思路:動態規划DP 遞推公式 DP[i] = max( DP[i-1], A[i] ); 可以用JS Math方法簡化代碼 或者打印定義臨時數組dp ...