letcode每日一題 使用最小花費爬樓梯

2021-10-12 12:39:18 字數 647 閱讀 9169

題目描述如下:

方法一:動態規劃

在題中每乙個階梯只有兩種情況即爬或者不爬,這裡我們用乙個陣列dp儲存階梯的情況,dp[i][1]儲存爬階梯消耗的能量,dp[i][0]儲存不爬消耗的能量,

我們要知道第i層階梯爬的所需消耗的最小能量,則

dp[i][0]=math.min(dp[i-1][0]+cost[i],dp[i-1][1]+cost[i]);

應為一次只能選擇爬一階或者兩階所以第i階不爬的話,第i-1階必須要爬,則:

dp[i][1]=dp[i-1][1]

最後題目的結果則為math.min(dp[cost.length-1][0],dp[cost.length-1][0]),**實現如下:

public int mincostclimbingstairs(int cost) {

//dp[i][0] --不爬 dp[i][1]--爬

letcode每日一題 不同路徑

話不多說,我們上題目 方法一 動態規劃 我們用 f i,j 表示從左上角走到 i,j 的路徑數量,其中 i 和 j 的範圍分別是 0,m 和 0,n 由於我們每一步只能從向下或者向右移動一步,因此要想走到 i,j 如果向下走一步,那麼會從 i 1,j 走過來 如果向右走一步,那麼會從 i,j 1 走...

letcode每日一題 最大間距

今日每日一題,最大間距,一看難度困難,我想ctrl c再ctrl v,但是再一看題,嗯,我好想可以 我的 這道題的難點在於如何用線性的時空複雜度來解決。直接sort然後遍歷陣列當然可以解決問題,但是面試的時候這 種解法肯定是不能讓面試官滿意的。實現 如下 public int maximumgap ...

letcode每日一題 四數相加 II

現在的天氣真的是冷的凍耳朵,做道題來熱熱身吧!題目描述如下 解題思路 a i b j c k d l 0 我們可以把a i b j c k d l 看成兩個整體,即兩個數相加為0,這樣最快的就是把其中一部分放進hash中,直接判斷0 另乙個數的結果在hash中是否存在就可以了。方案一 a為一部分,b...