初級演算法探索 動態規劃篇(一)

2021-08-28 12:37:31 字數 906 閱讀 6362

問題:爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1. 1 階 + 1 階

2. 2 階

示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1. 1 階 + 1 階 + 1 階

2. 1 階 + 2 階

3. 2 階 + 1 階

js解決辦法:

/**

* @param n

* @return

*/// n+1的解法為 n的解法數目 和 n的解法中以1結尾的解法數目 之和

var climbstairs = function(n)

if (n == 2)

var endwithone = 1;

var lastnummethod = 2;

var curnummethod = 0;

for (var i = 3; i <= n; i++)

return curnummethod;

};

執行結果截圖:

執行耗時:

LeetCode探索初級演算法 動態規劃

今天在leetcode上做了幾個簡單的動態規劃的題目,也算是對動態規劃有個基本的了解了。現在對動態規劃這個演算法做乙個簡單的總結。動態規劃英文 dynamic programming,是求解決策過程最優化的數學方法,後來沿用到了程式設計領域。動態規劃的大致思路是把乙個複雜的問題轉化成乙個分階段逐步遞...

初級演算法探索 陣列篇(一)

問題 從排序陣列中刪除重複項 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nu...

初級演算法探索 陣列篇(九)

問題 兩數之和 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 理解同一元素不能重複使用 3,3 ta...