//設爬x層的梯子的方法有f(x)種,那麼f(x) = f(x-1)+f(x-2);
//爬1層梯子的方式有一種
//爬2層梯子的方式有兩種
//爬3層梯子的方式有三種
//爬4層梯子的方式有五種
classsolution
int rev= newint[n+1];
rev[0] = 0;
rev[1] = 1;
rev[2] = 2;
for(inti= 3;i < n+1;i++)
returnrev[n];}}
// //要取得前後兩者的最大值之差
// //可以用暴力法,迴圈得到每次差值,取得最大值
// //但是這個方法會超時
// class solution
// }
// }
// return max;
// }
// }
//這題需要思考的是每次差值都是後面減去前面的乙個數
//而最大的差值無非就是在一範圍內取得最小值與其後的元素差值
//乙個區間可能會遇見許多個這樣的差值,每次用後面得到的差值與前一項的作比較取的最大值
//往下繼續比較即得出全域性的最大差值
classsolutionelse}}
returnmax;}}
//求最大子串行和,需要暫時的儲存前面比最大值小的序列和,因為有可能後面加上某一資料後結果就比之前的要大
//還要注意如果前面的序列和已經小於0,那麼就沒有儲存的意義了,後面尋找最大的序列號就不需要之前的資料了
classsolution
if(sum < 0)
}returnmax;}}
//因為不能同時打劫相鄰的,因此可以判斷上一次打劫的金額與上上次打劫的金額與這個可以打劫的金額想加哪個大
//上次打劫的金額不能加上這次的是因為相鄰之間的不能同時打劫
classsolution
//如果只有乙個住戶
if(n == 1)
//如果有兩個住戶
if(n == 2)
dp[0] = nums[0];
dp[1] = math.max(nums[0],nums[1]);
//如果住戶大於兩個
for(inti= 2;i < n;i++)
returndp[n-1];}}
力扣 動態規劃 最低票價
問題描述 在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 一張為期一天的通行證售價為 costs 0 美元 一張為期七天的通行證售價為 costs 1 ...
力扣 動態規劃 不同路徑
描述 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。...
力扣 動態規劃 爬樓梯
說明 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 2 階示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1 階...