劍指offer演算法

2021-10-23 17:17:59 字數 477 閱讀 6464

動態規劃

題目描述

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:,連續子向量的最大和為8(從第0個開始,到第3個為止)。給乙個陣列,返回它的最大連續子串行的和,你會不會被他忽悠住?(子向量的長度至少是1)

核心思路:

dp[n]代表以當前元素為截止點的連續子串行的最大和,如果dp[n-1]>0,dp[n]=dp[n]+dp[n-1],因為當前數字加上乙個正數一定會變大;如果dp[n-1]<0,dp[n]不變,因為當前數字加上乙個負數一定會變小。使用乙個變數max記錄最大的dp值返回即可。

演算法 劍指offer

思路 若百位上數字為0,百位上可能出現1的次數由更高位決定 若百位上數字為1,百位上可能出現1的次數不僅受更高位影響還受低位影響 若百位上數字大於1,則百位上出現1的情況僅由更高位決定。舉例 個位1出現的次數 round 1 1 每次迴圈1出現一次,0 9迴圈了53次,第54次迴圈為0 4 十位1出...

劍指offer 排序演算法

常用排序演算法自主手寫 1 氣泡排序 時間o n 2 空間o 1 穩定,資料有序效果越好 void bubblesort int a,int n flag 1說明該趟不是全部都有序,需要繼續比較 flag 0說明沒有進行互換,陣列已經有序了,沒有必要繼續比較,直接結束 2 選擇排序 時間o n 2 ...

《劍指Offer》 排序演算法

簡單排序 直接插入 直接選擇 冒泡 o n2 優化排序 希爾排序 堆排序 快速排序 o n log n 歸併排序。要能夠從時間複雜度 空間複雜度比較優缺點。陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸...