劍指offer js實現連續子陣列的最大和

2021-10-01 17:43:54 字數 591 閱讀 3835

題目:輸入乙個整型陣列,陣列裡有正數也有負數,陣列的乙個或連續多個整數組成乙個子陣列。求所有子陣列的和的最大值

思路:使用窮舉法,把所有的可能列出來

舉例分析規律

如果累加時發現累加到了乙個負數,數字越來越小,則把之前的數存起來,他可能是乙個最大值。

如果累加的和變成了負數,那麼應該把這次的和去掉,換乙個頭

let arr =[1

,2,3

,-2,

5];const

findmax

= arr =>

let sum =0;

let lastsum =-1

;for

(var i =

0; i)else

if(sum > lastsum)

}return lastsum;

}

延伸:如果陣列為迴圈陣列,即尾部接著頭部

思路:迴圈我們可以構建新陣列,長度為原陣列兩倍,再次呼叫findmax函式

const

findmax2

= arr =>

劍指offer js實現剪繩子

題目 給你一根長度為n的繩子,請剪成m段n 1,m 1,使剩下的繩子乘積為最大值.例 8 2 3 3 18 思路 動態規劃,比如8,第一次切割可以分成8 1種切法,將最優解儲存起來。let n 8 function cut if res n return res n let max 0 for le...

劍指offer js編寫 樹

1 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 首先找到a中結點的值與b相等的結點,然後從這兩個相同的結點出發,判斷是否存在重合,若是返回true。否則,在樹a的左右子樹中尋找與b結點值相同的結點,以這些結點出發遞迴判斷是否是a的子樹。functio...

劍指offer連續子數的最大和

輸入乙個整型陣列,陣列裡有正數也有負數。陣列中的乙個或連續多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為 o n 動態規劃思想 轉移方程 dp i 1 0 時,dp i dp i 1 array i dp i 1 0 時,dp i array i dp i 1 小於0,則認為其毫...