1.題目描述
陣列的每個索引做為乙個階梯,第i
個階梯對應著乙個非負數的體力花費值cost[i]
(索引從0開始)。
每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。
您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。
示例 1:
輸入:cost = [10, 15, 20]輸出:15解釋:最低花費是從cost[1]開始,然後走兩步即可到階梯頂,一共花費15。示例 2:
輸入:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]輸出:6解釋:最低花費方式是從cost[0]開始,逐個經過那些1,跳過cost[3],一共花費6。注意:
cost
的長度將會在[2, 1000]
。
每乙個cost[i]
將會是乙個integer型別,範圍為[0, 999]
。
2.演算法分析
在登上第i級階梯的時候,選擇有兩種,一種是從前面一級階梯爬上;另一種是從前兩級階梯爬兩個階梯爬上。用pre1和pre2表示前兩個和前乙個台階所耗費的體力,從第3級階梯開始(相應的下標為2),登上第i級階梯花費的體力為min(cost[i-1]+pre2,cost[i-2]+pre1)。很容易得出pre1=0,pre2=0。
3.演算法**
class solution
int pre1=0;
int pre2=0;
for(int i=2;i<=cost.length;i++)
return pre2;
}}
LeetCode 使用最小花費爬樓梯
原題連線 746.使用最小花費爬樓梯 陣列的每個索引作為乙個階梯,第 i個階梯對應著乙個非負數的體力花費值cost i 索引從0開始 每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 ...
最小花費 Dijkstra
原題鏈結傳送門 d es crip tion description descri ptio n在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。i np ut inp...
砍樹最小花費
題意 有n種樹,每種樹給出高度h,砍掉每顆樹的花費c,每種樹的數量p,現在要砍掉一些樹,使得最高的樹的數量超過所有樹的一半,問最小花費。不同種類的樹高度可能相同 題解 列舉不同的高度,把高於它的樹都砍掉,然後比它矮的樹挑便宜的砍,使得該高度的樹佔所有樹的1 2 1。給樹按高度排序,首先可以用字尾和預...