aboutsummaryrefslogtreecommitdiff
path: root/climbing_stairs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'climbing_stairs.rs')
-rw-r--r--climbing_stairs.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/climbing_stairs.rs b/climbing_stairs.rs
new file mode 100644
index 0000000..e3bf42d
--- /dev/null
+++ b/climbing_stairs.rs
@@ -0,0 +1,16 @@
+struct Solution;
+
+impl Solution {
+ pub fn climb_stairs(n: i32) -> i32 {
+ let (mut ans, mut i) = ([2, 1], 3);
+ while i <= n as usize {
+ ans[i & 0b01] = ans[0] + ans[1];
+ i += 1;
+ }
+ ans[n as usize & 0b01]
+ }
+}
+
+fn main() {
+ print!("{}", Solution::climb_stairs(2));
+}