LeetCode 746 使用最小花費爬樓梯

2021-10-01 22:30:54 字數 795 閱讀 4812

陣列的每個索引做為乙個階梯,第i個階梯對應著乙個非負數的體力花費值cost[i](索引從0開始)。每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部(不是只到最後乙個階梯就行)的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。

輸入: cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]

輸出: 6

解釋: 最低花費方式是從cost[0]開始,逐個經過那些1,跳過cost[3],一共花費6。

重要的是理解題意,簡單動態規劃:dp[i] = min(dp[i-1], dp[i-2]) + cost[i]

動態規劃

class

solution

return

min(dp[length-1]

, dp[length-2]

);}}

;// 或者(思路同上)

class

solution

; dp[0]

= cost[0]

, dp[1]

= cost[1]

;for

(int i =

2; i < length; i++

)return dp[length-1]

;}};

空間複雜度還可以繼續優化到o(1),這裡暫略。

LeetCode 746 使用最小花費爬樓梯

陣列的每個索引做為乙個階梯,第i個階梯對應著乙個非負數的體力花費值cost i 索引從0開始 每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。示例 1 輸入 co...

LeetCode746 使用最小花費爬樓梯

陣列的每個索引做為乙個階梯,第i個階梯對應著乙個非負數的體力花費值cost i 索引從0開始 每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。示例 1 輸入 co...

leetCode 746 使用最小花費爬樓梯

陣列的每個索引作為乙個階梯,第i個階梯對應著乙個非負數的體力花費值cost i 索引從0開始 每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。dp i 定義為 到...