summaryrefslogtreecommitdiff
path: root/top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-02-05 18:36:31 -0800
committer3gg <3gg@shellblade.net>2025-02-05 18:36:31 -0800
commit4689e4e80b479be25f7557d05818f5caa723aafa (patch)
tree4df25811fe2a9a15b401375178da6537f4b6063f /top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc
Initial commit.HEADmain
Diffstat (limited to 'top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc')
-rw-r--r--top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc b/top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc
new file mode 100644
index 0000000..19aa6a1
--- /dev/null
+++ b/top-interview-questions/easy/dynamic_programming/01_climbing_stairs.cc
@@ -0,0 +1,22 @@
1class Solution {
2public:
3 int climbStairs(int n) {
4 /*
5 ways(n-1, n) = 1 -- one step to n
6 ways(n-2, n) = 1 + 1 -- 1x two-step + 2x one-step
7 ways( k, n) = ways(k-1, n) + ways(k-2, n)
8 */
9 if (n == 1) return 1;
10 if (n == 2) return 2;
11
12 int ways_n_1 = 1; // ways(n-1, n)
13 int ways_n_2 = 2; // ways(n-2, n)
14 for (int i = n-3; i >= 0; --i) {
15 const int ways_n_3 = ways_n_1 + ways_n_2;
16 // Update
17 ways_n_1 = ways_n_2;
18 ways_n_2 = ways_n_3;
19 }
20 return ways_n_2;
21 }
22};