From 0d64df58f1279f15af0aabcb04785ef3aa7fe0d6 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 25 Sep 2026 13:27:06 -0400 Subject: [PATCH] chore: clean up content phase organization --- .../70-climbing-stairs.mdx | 43 +++++++++++++++ .../1d-dynamic-programming/meta.ts | 3 ++ apps/docs/redirects.ts | 1 + work/1/Easy/Math/70.climbing-stairs.py | 53 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 apps/docs/content/(05-decision-space)/1d-dynamic-programming/70-climbing-stairs.mdx create mode 100644 apps/docs/content/(05-decision-space)/1d-dynamic-programming/meta.ts create mode 100644 work/1/Easy/Math/70.climbing-stairs.py diff --git a/apps/docs/content/(05-decision-space)/1d-dynamic-programming/70-climbing-stairs.mdx b/apps/docs/content/(05-decision-space)/1d-dynamic-programming/70-climbing-stairs.mdx new file mode 100644 index 0000000..11fc5af --- /dev/null +++ b/apps/docs/content/(05-decision-space)/1d-dynamic-programming/70-climbing-stairs.mdx @@ -0,0 +1,43 @@ +--- +title: '70. Climbing Stairs' +description: You are climbing a staircase. It takes n steps to reach the top +icon: dot +sidebar: + label: 'Climbing Stairs' + badge: 'Easy' +--- + +Math + +### Example 1: +- Input: `n = 2` +- Output: `2` +- Explanation: There are two ways to climb to the top. `1`. `1` step + `1` step `2`. `2` steps + +### Example 2: +- Input: `n = 3` +- Output: `3` +- Explanation: There are three ways to climb to the top. `1`. `1` step + `1` step + `1` step `2`. `1` step + `2` steps `3`. `2` steps + `1` step + +### Constraints: + +- `1 <= n <= 45` + +## Solution + +```py +class Solution: + def climbStairs(self, n: int) -> int: + if n == 1: + return 1 + if n == 2: + return 2 + + first, second = 1, 2 + + for _ in range(3, n + 1): + third = first + second + first, second = second, third + + return second +``` diff --git a/apps/docs/content/(05-decision-space)/1d-dynamic-programming/meta.ts b/apps/docs/content/(05-decision-space)/1d-dynamic-programming/meta.ts new file mode 100644 index 0000000..b1fdae6 --- /dev/null +++ b/apps/docs/content/(05-decision-space)/1d-dynamic-programming/meta.ts @@ -0,0 +1,3 @@ +import { defineMeta } from "blume"; + +export default defineMeta({ title: "1-D Dynamic Programming", order: 21, icon: "columns-3", display: "group" }); diff --git a/apps/docs/redirects.ts b/apps/docs/redirects.ts index 5a2c90e..5806dd2 100644 --- a/apps/docs/redirects.ts +++ b/apps/docs/redirects.ts @@ -16,6 +16,7 @@ export default [ { from: "/48", to: "/matrix-index-math/rotate-image" }, { from: "/49", to: "/hash-table/group-anagrams" }, { from: "/54", to: "/matrix-index-math/spiral-matrix" }, + { from: "/70", to: "/1d-dynamic-programming/climbing-stairs" }, { from: "/73", to: "/matrix-index-math/set-matrix-zeroes" }, { from: "/74", to: "/binary-search/search-a-2d-matrix" }, { from: "/78", to: "/backtracking/subsets" }, diff --git a/work/1/Easy/Math/70.climbing-stairs.py b/work/1/Easy/Math/70.climbing-stairs.py new file mode 100644 index 0000000..3349657 --- /dev/null +++ b/work/1/Easy/Math/70.climbing-stairs.py @@ -0,0 +1,53 @@ +""" +70. Climbing Stairs +Difficulty: Easy +https://leetcode.com/problems/climbing-stairs/ + +────────────────────────────────────────────────── + +You are climbing a staircase. It takes n steps to reach the top. + +Each time you can either climb 1 or 2 steps. In how many distinct +ways can you climb to the top? + + + +Example 1: + +Input: n = 2 +Output: 2 +Explanation: There are two ways to climb to the top. +1. 1 step + 1 step +2. 2 steps + +Example 2: + +Input: n = 3 +Output: 3 +Explanation: There are three ways to climb to the top. +1. 1 step + 1 step + 1 step +2. 1 step + 2 steps +3. 2 steps + 1 step + + + +Constraints: + + • 1 <= n <= 45 +""" + + +class Solution: + def climbStairs(self, n: int) -> int: + if n == 1: + return 1 + if n == 2: + return 2 + + first, second = 1, 2 + + for _ in range(3, n + 1): + third = first + second + first, second = second, third + + return second