20201221 使用最小花費爬樓梯

2022-06-20 04:27:08 字數 953 閱讀 9013

陣列的每個索引作為乙個階梯,第 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。

public

int mincostclimbingstairs(int

cost)

思路1(錯誤):陣列先獲取前2位獲取最小值,再依最小值獲取前3位最小值 依次找出最小花費

思路錯誤 因為可能出現多次同時跨2層階梯的情況

思路2:做2種情況假設 分別是起始階梯1層或2層(i層)

接著比較i+2層和(i+1)+(i+3)層的大小 取最小值

再把2種假設的最後值再對比取最小值 即最後取值

還是失敗了 原因待查

public

int mincostclimbingstairs(int

cost)

for (int i=1;i=len?0:cost[i+3]))+r2;

}return math.min(math.min(c1,c2)+r1,c2+r2);

}

public int mincostclimbingstairs(int cost) 

return dp[l];

}

最小花費 Dijkstra

原題鏈結傳送門 d es crip tion description descri ptio n在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。i np ut inp...

砍樹最小花費

題意 有n種樹,每種樹給出高度h,砍掉每顆樹的花費c,每種樹的數量p,現在要砍掉一些樹,使得最高的樹的數量超過所有樹的一半,問最小花費。不同種類的樹高度可能相同 題解 列舉不同的高度,把高於它的樹都砍掉,然後比它矮的樹挑便宜的砍,使得該高度的樹佔所有樹的1 2 1。給樹按高度排序,首先可以用字尾和預...

使用最小花費爬樓梯

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