題目**於力扣(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,...