746 使用最小花費爬樓梯 簡單

2022-01-18 09:24:51 字數 1413 閱讀 1912

題目**於力扣(leetcode)

目錄三、**實現

四、執行用時

五、部分測試用例

746. 使用最小花費爬樓梯

說明:

定義兩個變數:dp1,dp2,初始值均為 0

遍歷陣列,每一項的結果都取兩個變數中的最小值

得到本次遍歷計算得到的結果後,改變 dp1,dp2 的值

dp2 原本的值(即前 2 項元素的值)捨棄,改變為原本 dp1(前 1 項元素)的值

dp1 改變為記錄本次遍歷計算得到的結果

遍歷結束後,再返回 dp1 和 dp2 兩值中的最小值

定義乙個與 cost 陣列長度相同的陣列,用於記錄每一步花費的力氣數

手動為新陣列的前兩項賦值為 cost 陣列的前兩項元素

遍歷 cost 陣列(從第 3 項開始,索引為 2)

每次遍歷都將當前遍歷元素與新陣列中的前一項和前兩項進行相同,將得到的兩個結果再取最小值儲存到新陣列中,則本次計算得到的值將作為下乙個元素進行相加的值

因最後兩步時,可以是倒數第兩步時,直接兩步走完,也可以是倒數第一步時,再走一步走完,所以最後對比新陣列中倒數第一項和倒數第二項的值,返回最小值

public static int mincostclimbingstairs(int cost) 

// 最後比較 dp1 和 dp2 的大小

return math.min(dp1, dp2);

}

public static int mincostclimbingstairs2(int cost) 

// 最後一步與最後兩步中取最小值,因為倒數第二步時,也可以直接跳完

746 使用最小花費爬樓梯

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

746 使用最小花費爬樓梯

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

746 使用最小花費爬樓梯

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