【劍指offer】連續子陣列的最大和
本題知識點: 陣列
題目描述
HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2},連續子向量的最大和為8(從第0個開始,到第3個為止)。你會不會被他忽悠住?(子向量的長度至少是1)方法一:暴力搜尋。複雜度O(n*n)
方法二:動態規劃。複雜度O(n)class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int N = array.size(); int sum = 0; int maxSum = -1000000; for (int i = 0; i < N; i++) { for(int j=i; j<N; j++) { sum += array[j]; if(sum>maxSum) maxSum = sum; } sum = 0; } return maxSum; } };
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int N = array.size(); int sum = array[0]; int maxSum = array[0]; for(int i=1; i<N; i++) { sum = (sum < 0)? array[i]:(sum + array[i]); if(sum>maxSum) maxSum = sum; } return maxSum; } };
相關推薦
【劍指offer】連續子陣列最大和
題目:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2},連續子向量的最大和為8(從第0個開始,到第3個為止)。給一個數組,返回它的最大連續子序
【劍指offer】連續子陣列的最大和
時間限制:1秒 空間限制:32768K 熱度指數:54591 本題知識點: 陣列 題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模
【Java】 劍指offer(44) 連續子陣列的最大和 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 數字以0123456789101112131415…的格式序列化到一個字元序列中。在這個序列中,第5位(從0開始計數)是5,第13位是1,第19位是4,等等。請寫一個
劍指offer:(31)時間效率 :連續子陣列最大和
package jianzhioffer; public class Solution31 { //動態規劃:就是將中間值儲存下來 public static int FindGreatestSumOfSubArray(int[] array) { if (array == null
【劍指Offer】05旋轉陣列的最小數字
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0。 時間
【劍指Offer】11調整陣列順序使奇數位於偶數前面
題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 時間限制:1秒;空間限制:32768K;本題知識點: 陣列 解題思路 思路一 建立一個新的陣列,先判
劍指Offer 30. 連續子陣列的最大和 (陣列)
題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2}
(劍指offer)連續子陣列的最大和
時間限制:1秒 空間限制:32768K 熱度指數:176092 本題知識點: 陣列 題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量
劍指Offer-42 連續子陣列的最大和
題目: 輸入一個 非空 整型陣列,數組裡的數可能為正,也可能為負。陣列中一個或連續的多個整陣列成一個子陣列。求所有子陣列的和的最大值。要求時間複雜度為O(n)。 樣例 輸入:[1, -2, 3, 10, -4, 7, 2, -5] 輸出:18 解答: class Solution
[劍指offer] 30. 連續子陣列的最大和
題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15
牛客網 《劍指Offer》程式設計 30.連續子陣列最大和
題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,
劍指Offer-30.連續子陣列的最大和(Javascript)
30.連續子陣列的最大和 題目連結 題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數
【劍指offer】二維陣列中的查詢——複雜度為O(n+m)——採用PHP寫法
背景 今天偶然進入牛客網,看到《劍指offer》模組有演算法題,就開始試著答題 題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣
【劍指offer】二維陣列中的查詢
題目描述: 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 解題思路: 從矩陣的左下角或右上角開始搜尋, 如果目標<
【劍指offer】32把陣列排成最小的數
/** *輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。 *例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 */ i
劍指Offer之連續子陣列的最大和
題目描述: HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天JOBDU測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它
劍指offer之連續子陣列的最大和(Python)
題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果
【劍指offer】 二維陣列中的查詢
題目: 個人部落格 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 1、在一個二維陣列中(每個一
【劍指offer】1-10題:C++和Java版
劍指offer 面試題1:賦值運算子函式 題目:如下為型別CMyString 的宣告,請為該型別新增賦值符函式。 class CmyString { public: CmyString(char* pData = nullptr); CmyString(c
動態規劃演算法(連續子陣列最大和,O(N)時間複雜度O(1)空間複雜度) 【更新於:2018-05-13】
這個題目最早在13年阿里筆試出現,直到前兩天面試另一家電商又出現,哎,欠的都是要還的。 這個問題的思路如下:一維陣列的下標連續的元素構成連續子陣列,求所有連續子陣列中和最大的那個子陣列。 解析:2018-11-08 1 首先這個問題要轉化為Q(n)的問題,對於Q(n)的