原创 LintCode 516.房屋染色II

房屋染色II 序列型動態規劃 與LintCode 515類似,由於顏色數從3變爲k,源代碼經過簡單修改也可AC。 time:3142ms public class Solution { /** * @param

原创 leetcode 152.乘積最大子序列

152.乘積最大子序列 執行用時 :3 ms, 在所有 Java 提交中擊敗了41.29%的用戶 考慮最後一步: 對於最優的策略,一定有最後一個元素a[j]; 第一種情況:最優的策略就是{a[j]},答案就是a[j] 第二種情況

原创 LeetCode 322.零錢兌換

LeetCode 322.零錢兌換 確定狀態: 設f[n]爲當金額爲n時的硬幣數。 最後一步:遍歷所有硬幣面值,存在一枚面值i的硬幣使得f[n-i]最小 轉移方程: f[i]=min{f[i−coins]+1}f[i]=min\{

原创 LeetCode 198.打家劫舍

LeetCode 198.打家劫舍 執行用時 :0 ms, 在所有 Java 提交中擊敗了100.00%的用戶 序列型動態規劃 最後一步: 首先設f[i]爲前i-1項的最優解(f[]數組索引從1開始,0作爲初始條件擱置),要知道

原创 LeetCode 123.買賣股票的最佳時機 III

LeetCode 123.買賣股票的最佳時機 III 執行用時 :4 ms, 在所有 Java 提交中擊敗了70.42%的用戶 序列型動態規劃 首先對於股票交易要有幾個認識: 對於上圖,若此圖爲股票的價格走勢,那麼要求最大利潤

原创 LeetCode 516.最長迴文子序列

LeetCode 516.最長迴文子序列 區間型動態規劃 確定狀態: 最優策略產生的最長迴文子串是T,長度M。 情況一:迴文串長度爲1,即一個字母。 情況二:迴文串長度大於1,那麼必定有T[0]=T[M-1] 設T[0]是S[i]

原创 LeetCode 213.打家劫舍II

LeetCode 213.打家劫舍II 執行用時 :0 ms, 在所有 Java 提交中擊敗了100.00%的用戶 序列型動態規劃 本題和198.打家劫舍對比,房子由一序列升級到圈,那麼需要將圈拆開,還可利用前題的題解。圈與序列

原创 LeetCode 5.最長迴文子串

LeetCode 5.最長迴文子串 解法一: 直接使用中心擴展判斷迴文串,具體方法在:LeetCode 132.分割回文串II 再從大到小枚舉長度,若區間[i,j+1)爲迴文串,輸出。 class Solution { p

原创 LintCode 92.揹包問題

LintCode 92.揹包問題 揹包問題 對於每個總重量,我們能知道有沒有方案能做到,就可以解決。 揹包問題中,數組大小和總承重有關 確定狀態: 需要知道N個物品是否能拼出重量W(W=0,1,…,M)W (W =0, 1, …,

原创 CSAPP #3:第三章開始之前 用Powershell代替部分書中linux下的操作

開始之前 CSAPP書中使用Linux和gcc,很多在命令行中操作 然而現在菜雞還不會用Linux,學習CSAPP這時候突然跑去學習Linux不太明智 發現個暫時模擬書中操作的辦法 安裝GCC,配置環境變量 其實直接下載Co

原创 LintCode 553. Bomb Enemy

LintCode 553. Bomb Enemy Total runtime 560 ms. Your submission beats 41.20% Submissions! 座標型動態規劃 注意題目要求不允許將炸彈放在敵人和

原创 LintCode 397.最長上升連續子序列

LintCode 397. 最長上升連續子序列 求最長上升連續子序列的長度,但該題與一般情況不同,該題認爲逆序也成立如 [5,4,3,2,1,6] , [5,4,3,2,1]從右向左看也爲最長上升連續子序列,故對於這種情況直接將數

原创 leetcode 63.不同路徑 II

63.不同路徑 II 執行用時 :1 ms, 在所有 Java 提交中擊敗了89.95%的用戶 與62題類似,只是存在障礙,在障礙上 f[i]=0,但在轉移方程上對於i==0和j==0的處理與之前不同,不能直接全設爲 1,因爲若

原创 CSAPP 簡記:#2第二章:Byte的Battle

第二章學習起來還是並不簡單,書上公式和推導很多,所以在數學上感覺有些考驗敏感度 1.進制 給出一個表。 一個字節由8位組成。每臺計算機都有一個字長,指明指針類型數據的標稱大小,指針類型能表示多大的地址值決定了虛擬地址空間的最大

原创 leetcode 498.對角線遍歷

498.對角線遍歷 執行用時 :6 ms , 在所有 Java 提交中擊敗了 20.72% 的用戶 錯一點debug一年的那種題 寫的是最直接的方法 爲了方便寫了一個judge方法判斷是否越界。 右上方向越界: 首先保證索引恢