Skip to content

Commit 73254ed

Browse files
authored
Added tasks 64-84
1 parent 0e9bea2 commit 73254ed

File tree

31 files changed

+920
-0
lines changed

31 files changed

+920
-0
lines changed

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
5555
|-|-|-|-|-|-
5656
| 0034 |[Find First and Last Position of Element in Sorted Array](src/main/scala/g0001_0100/s0034_find_first_and_last_position_of_element_in_sorted_array/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Binary_Search, Big_O_Time_O(log_n)_Space_O(1) | 478 | 97.85
5757
| 0033 |[Search in Rotated Sorted Array](src/main/scala/g0001_0100/s0033_search_in_rotated_sorted_array/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Binary_Search, Big_O_Time_O(log_n)_Space_O(1) | 453 | 91.53
58+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
5859

5960
#### Day 2 Binary Search
6061

@@ -97,6 +98,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
9798

9899
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
99100
|-|-|-|-|-|-
101+
| 0078 |[Subsets](src/main/scala/g0001_0100/s0078_subsets/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Bit_Manipulation, Backtracking, Big_O_Time_O(2^n)_Space_O(n\*2^n) | 452 | 87.50
100102

101103
#### Day 10 Recursion Backtracking
102104

@@ -110,6 +112,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
110112
|-|-|-|-|-|-
111113
| 0017 |[Letter Combinations of a Phone Number](src/main/scala/g0001_0100/s0017_letter_combinations_of_a_phone_number/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Hash_Table, Backtracking, Big_O_Time_O(4^n)_Space_O(n) | 459 | 58.54
112114
| 0022 |[Generate Parentheses](src/main/scala/g0001_0100/s0022_generate_parentheses/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Dynamic_Programming, Backtracking, Big_O_Time_O(2^n)_Space_O(n) | 380 | 100.00
115+
| 0079 |[Word Search](src/main/scala/g0001_0100/s0079_word_search/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Matrix, Backtracking, Big_O_Time_O(4^(m\*n))_Space_O(m\*n) | 783 | 94.87
113116

114117
#### Day 12 Dynamic Programming
115118

@@ -149,6 +152,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
149152

150153
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
151154
|-|-|-|-|-|-
155+
| 0072 |[Edit Distance](src/main/scala/g0001_0100/s0072_edit_distance/Solution.scala)| Hard | Top_100_Liked_Questions, String, Dynamic_Programming, Big_O_Time_O(n^2)_Space_O(n2) | 487 | 100.00
152156

153157
#### Day 19 Bit Manipulation
154158

@@ -208,6 +212,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
208212

209213
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
210214
|-|-|-|-|-|-
215+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
211216

212217
#### Day 9
213218

@@ -343,6 +348,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
343348

344349
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
345350
|-|-|-|-|-|-
351+
| 0070 |[Climbing Stairs](src/main/scala/g0001_0100/s0070_climbing_stairs/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Memoization, Big_O_Time_O(n)_Space_O(n) | 369 | 98.32
346352

347353
#### Day 3
348354

@@ -418,6 +424,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
418424

419425
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
420426
|-|-|-|-|-|-
427+
| 0064 |[Minimum Path Sum](src/main/scala/g0001_0100/s0064_minimum_path_sum/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Matrix, Big_O_Time_O(m\*n)_Space_O(m\*n) | 521 | 92.86
421428

422429
#### Day 17
423430

@@ -434,6 +441,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
434441

435442
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
436443
|-|-|-|-|-|-
444+
| 0072 |[Edit Distance](src/main/scala/g0001_0100/s0072_edit_distance/Solution.scala)| Hard | Top_100_Liked_Questions, String, Dynamic_Programming, Big_O_Time_O(n^2)_Space_O(n2) | 487 | 100.00
437445

438446
#### Day 20
439447

@@ -788,6 +796,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
788796

789797
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
790798
|-|-|-|-|-|-
799+
| 0070 |[Climbing Stairs](src/main/scala/g0001_0100/s0070_climbing_stairs/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Memoization, Big_O_Time_O(n)_Space_O(n) | 369 | 98.32
791800

792801
#### Day 11 Dynamic Programming
793802

@@ -858,6 +867,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
858867

859868
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
860869
|-|-|-|-|-|-
870+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
861871
| 0033 |[Search in Rotated Sorted Array](src/main/scala/g0001_0100/s0033_search_in_rotated_sorted_array/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Binary_Search, Big_O_Time_O(log_n)_Space_O(1) | 453 | 91.53
862872

863873
#### Day 9 Binary Search Tree
@@ -890,6 +900,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
890900
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
891901
|-|-|-|-|-|-
892902
| 0003 |[Longest Substring Without Repeating Characters](src/main/scala/g0001_0100/s0003_longest_substring_without_repeating_characters/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Hash_Table, Sliding_Window, Big_O_Time_O(n)_Space_O(1) | 482 | 96.91
903+
| 0076 |[Minimum Window Substring](src/main/scala/g0001_0100/s0076_minimum_window_substring/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, String, Hash_Table, Sliding_Window, Big_O_Time_O(s.length())_Space_O(1) | 453 | 100.00
893904

894905
#### Day 15 Tree
895906

@@ -952,6 +963,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
952963
|-|-|-|-|-|-
953964
| 0001 |[Two Sum](src/main/scala/g0001_0100/s0001_two_sum/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table, Big_O_Time_O(n)_Space_O(n) | 517 | 86.66
954965
| 0055 |[Jump Game](src/main/scala/g0001_0100/s0055_jump_game/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Greedy, Big_O_Time_O(n)_Space_O(1) | 622 | 88.31
966+
| 0075 |[Sort Colors](src/main/scala/g0001_0100/s0075_sort_colors/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Two_Pointers, Big_O_Time_O(n)_Space_O(1) | 450 | 84.21
955967
| 0041 |[First Missing Positive](src/main/scala/g0001_0100/s0041_first_missing_positive/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table, Big_O_Time_O(n)_Space_O(n) | 650 | 100.00
956968

957969
#### Udemy Two Pointers
@@ -976,7 +988,9 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
976988

977989
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
978990
|-|-|-|-|-|-
991+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
979992
| 0048 |[Rotate Image](src/main/scala/g0001_0100/s0048_rotate_image/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Math, Matrix, Big_O_Time_O(n^2)_Space_O(1) | 472 | 66.67
993+
| 0073 |[Set Matrix Zeroes](src/main/scala/g0001_0100/s0073_set_matrix_zeroes/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table, Matrix, Big_O_Time_O(m\*n)_Space_O(1) | 557 | 90.91
980994
| 0056 |[Merge Intervals](src/main/scala/g0001_0100/s0056_merge_intervals/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Big_O_Time_O(n_log_n)_Space_O(n) | 583 | 90.91
981995

982996
#### Udemy Linked List
@@ -1006,6 +1020,9 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10061020

10071021
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10081022
|-|-|-|-|-|-
1023+
| 0070 |[Climbing Stairs](src/main/scala/g0001_0100/s0070_climbing_stairs/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Memoization, Big_O_Time_O(n)_Space_O(n) | 369 | 98.32
1024+
| 0064 |[Minimum Path Sum](src/main/scala/g0001_0100/s0064_minimum_path_sum/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Matrix, Big_O_Time_O(m\*n)_Space_O(m\*n) | 521 | 92.86
1025+
| 0072 |[Edit Distance](src/main/scala/g0001_0100/s0072_edit_distance/Solution.scala)| Hard | Top_100_Liked_Questions, String, Dynamic_Programming, Big_O_Time_O(n^2)_Space_O(n2) | 487 | 100.00
10091026
| 0010 |[Regular Expression Matching](src/main/scala/g0001_0100/s0010_regular_expression_matching/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, String, Dynamic_Programming, Recursion, Big_O_Time_O(m\*n)_Space_O(m\*n) | 459 | 75.00
10101027

10111028
#### Udemy Backtracking/Recursion
@@ -1014,6 +1031,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10141031
|-|-|-|-|-|-
10151032
| 0022 |[Generate Parentheses](src/main/scala/g0001_0100/s0022_generate_parentheses/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Dynamic_Programming, Backtracking, Big_O_Time_O(2^n)_Space_O(n) | 380 | 100.00
10161033
| 0039 |[Combination Sum](src/main/scala/g0001_0100/s0039_combination_sum/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Backtracking, Big_O_Time_O(2^n)_Space_O(n+2^n) | 488 | 97.50
1034+
| 0078 |[Subsets](src/main/scala/g0001_0100/s0078_subsets/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Bit_Manipulation, Backtracking, Big_O_Time_O(2^n)_Space_O(n\*2^n) | 452 | 87.50
10171035
| 0017 |[Letter Combinations of a Phone Number](src/main/scala/g0001_0100/s0017_letter_combinations_of_a_phone_number/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Hash_Table, Backtracking, Big_O_Time_O(4^n)_Space_O(n) | 459 | 58.54
10181036
| 0046 |[Permutations](src/main/scala/g0001_0100/s0046_permutations/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Backtracking, Big_O_Time_O(n\*n!)_Space_O(n+n!) | 470 | 92.31
10191037

@@ -1055,6 +1073,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10551073

10561074
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10571075
|-|-|-|-|-|-
1076+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
10581077

10591078
#### Day 6 String
10601079

@@ -1115,6 +1134,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
11151134

11161135
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
11171136
|-|-|-|-|-|-
1137+
| 0075 |[Sort Colors](src/main/scala/g0001_0100/s0075_sort_colors/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Two_Pointers, Big_O_Time_O(n)_Space_O(1) | 450 | 84.21
11181138
| 0056 |[Merge Intervals](src/main/scala/g0001_0100/s0056_merge_intervals/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Big_O_Time_O(n_log_n)_Space_O(n) | 583 | 90.91
11191139

11201140
#### Day 3 Array
@@ -1284,6 +1304,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
12841304

12851305
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
12861306
|-|-|-|-|-|-
1307+
| 0070 |[Climbing Stairs](src/main/scala/g0001_0100/s0070_climbing_stairs/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Memoization, Big_O_Time_O(n)_Space_O(n) | 369 | 98.32
12871308

12881309
#### Day 13 Bit Manipulation
12891310

@@ -1299,6 +1320,16 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
12991320

13001321
| # | Title | Difficulty | Tag | Time, ms | Time, %
13011322
|------|----------------|-------------|-------------|----------|---------
1323+
| 0084 |[Largest Rectangle in Histogram](src/main/scala/g0001_0100/s0084_largest_rectangle_in_histogram/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Stack, Monotonic_Stack, Big_O_Time_O(n_log_n)_Space_O(log_n) | 904 | 71.43
1324+
| 0079 |[Word Search](src/main/scala/g0001_0100/s0079_word_search/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Matrix, Backtracking, Algorithm_II_Day_11_Recursion_Backtracking, Big_O_Time_O(4^(m\*n))_Space_O(m\*n) | 783 | 94.87
1325+
| 0078 |[Subsets](src/main/scala/g0001_0100/s0078_subsets/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Bit_Manipulation, Backtracking, Algorithm_II_Day_9_Recursion_Backtracking, Udemy_Backtracking/Recursion, Big_O_Time_O(2^n)_Space_O(n\*2^n) | 452 | 87.50
1326+
| 0076 |[Minimum Window Substring](src/main/scala/g0001_0100/s0076_minimum_window_substring/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, String, Hash_Table, Sliding_Window, Level_2_Day_14_Sliding_Window/Two_Pointer, Big_O_Time_O(s.length())_Space_O(1) | 453 | 100.00
1327+
| 0075 |[Sort Colors](src/main/scala/g0001_0100/s0075_sort_colors/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Two_Pointers, Data_Structure_II_Day_2_Array, Udemy_Arrays, Big_O_Time_O(n)_Space_O(1) | 450 | 84.21
1328+
| 0074 |[Search a 2D Matrix](src/main/scala/g0001_0100/s0074_search_a_2d_matrix/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Binary_Search, Matrix, Data_Structure_I_Day_5_Array, Algorithm_II_Day_1_Binary_Search, Binary_Search_I_Day_8, Level_2_Day_8_Binary_Search, Udemy_2D_Arrays/Matrix, Big_O_Time_O(endRow+endCol)_Space_O(1) | 478 | 83.33
1329+
| 0073 |[Set Matrix Zeroes](src/main/scala/g0001_0100/s0073_set_matrix_zeroes/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table, Matrix, Udemy_2D_Arrays/Matrix, Big_O_Time_O(m\*n)_Space_O(1) | 557 | 90.91
1330+
| 0072 |[Edit Distance](src/main/scala/g0001_0100/s0072_edit_distance/Solution.scala)| Hard | Top_100_Liked_Questions, String, Dynamic_Programming, Algorithm_II_Day_18_Dynamic_Programming, Dynamic_Programming_I_Day_19, Udemy_Dynamic_Programming, Big_O_Time_O(n^2)_Space_O(n2) | 487 | 100.00
1331+
| 0070 |[Climbing Stairs](src/main/scala/g0001_0100/s0070_climbing_stairs/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Memoization, Algorithm_I_Day_12_Dynamic_Programming, Dynamic_Programming_I_Day_2, Level_1_Day_10_Dynamic_Programming, Udemy_Dynamic_Programming, Big_O_Time_O(n)_Space_O(n) | 369 | 98.32
1332+
| 0064 |[Minimum Path Sum](src/main/scala/g0001_0100/s0064_minimum_path_sum/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Matrix, Dynamic_Programming_I_Day_16, Udemy_Dynamic_Programming, Big_O_Time_O(m\*n)_Space_O(m\*n) | 521 | 92.86
13021333
| 0062 |[Unique Paths](src/main/scala/g0001_0100/s0062_unique_paths/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Dynamic_Programming, Math, Combinatorics, Algorithm_II_Day_13_Dynamic_Programming, Dynamic_Programming_I_Day_15, Level_1_Day_11_Dynamic_Programming, Big_O_Time_O(m\*n)_Space_O(m\*n) | 405 | 70.18
13031334
| 0056 |[Merge Intervals](src/main/scala/g0001_0100/s0056_merge_intervals/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Data_Structure_II_Day_2_Array, Level_2_Day_17_Interval, Udemy_2D_Arrays/Matrix, Big_O_Time_O(n_log_n)_Space_O(n) | 583 | 90.91
13041335
| 0055 |[Jump Game](src/main/scala/g0001_0100/s0055_jump_game/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Greedy, Algorithm_II_Day_12_Dynamic_Programming, Dynamic_Programming_I_Day_4, Udemy_Arrays, Big_O_Time_O(n)_Space_O(1) | 622 | 88.31
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package g0001_0100.s0064_minimum_path_sum
2+
3+
// #Medium #Top_100_Liked_Questions #Array #Dynamic_Programming #Matrix
4+
// #Dynamic_Programming_I_Day_16 #Udemy_Dynamic_Programming #Big_O_Time_O(m*n)_Space_O(m*n)
5+
// #2023_11_02_Time_521_ms_(92.86%)_Space_59.9_MB_(21.43%)
6+
7+
object Solution {
8+
def minPathSum(grid: Array[Array[Int]]): Int = {
9+
val numRows = grid.length
10+
val numCols = grid(0).length
11+
val dp = Array.ofDim[Int](numRows, numCols)
12+
13+
for (r <- numRows - 1 to 0 by -1) {
14+
for (c <- numCols - 1 to 0 by -1) {
15+
if (r == numRows - 1 && c == numCols - 1) {
16+
dp(r)(c) = grid(r)(c)
17+
} else if (r == numRows - 1) {
18+
dp(r)(c) = grid(r)(c) + dp(r)(c + 1)
19+
} else if (c == numCols - 1) {
20+
dp(r)(c) = grid(r)(c) + dp(r + 1)(c)
21+
} else {
22+
dp(r)(c) = grid(r)(c) + Math.min(dp(r + 1)(c), dp(r)(c + 1))
23+
}
24+
}
25+
}
26+
dp(0)(0)
27+
}
28+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
64\. Minimum Path Sum
2+
3+
Medium
4+
5+
Given a `m x n` `grid` filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path.
6+
7+
**Note:** You can only move either down or right at any point in time.
8+
9+
**Example 1:**
10+
11+
![](https://assets.leetcode.com/uploads/2020/11/05/minpath.jpg)
12+
13+
**Input:** grid = [[1,3,1],[1,5,1],[4,2,1]]
14+
15+
**Output:** 7
16+
17+
**Explanation:** Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum.
18+
19+
**Example 2:**
20+
21+
**Input:** grid = [[1,2,3],[4,5,6]]
22+
23+
**Output:** 12
24+
25+
**Constraints:**
26+
27+
* `m == grid.length`
28+
* `n == grid[i].length`
29+
* `1 <= m, n <= 200`
30+
* `0 <= grid[i][j] <= 100`
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package g0001_0100.s0070_climbing_stairs
2+
3+
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Dynamic_Programming #Math #Memoization
4+
// #Algorithm_I_Day_12_Dynamic_Programming #Dynamic_Programming_I_Day_2
5+
// #Level_1_Day_10_Dynamic_Programming #Udemy_Dynamic_Programming #Big_O_Time_O(n)_Space_O(n)
6+
// #2023_11_02_Time_369_ms_(98.32%)_Space_52_MB_(32.77%)
7+
8+
object Solution {
9+
def climbStairs(n: Int): Int = {
10+
if (n < 2) {
11+
return n
12+
}
13+
val cache = new Array[Int](n)
14+
15+
// Initialize the cache for the first two steps
16+
cache(0) = 1
17+
cache(1) = 2
18+
19+
// Fill in the cache using a loop
20+
for (i <- 2 until n) {
21+
cache(i) = cache(i - 1) + cache(i - 2)
22+
}
23+
24+
cache(n - 1)
25+
}
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
70\. Climbing Stairs
2+
3+
Easy
4+
5+
You are climbing a staircase. It takes `n` steps to reach the top.
6+
7+
Each time you can either climb `1` or `2` steps. In how many distinct ways can you climb to the top?
8+
9+
**Example 1:**
10+
11+
**Input:** n = 2
12+
13+
**Output:** 2
14+
15+
**Explanation:** There are two ways to climb to the top. 1. 1 step + 1 step 2. 2 steps
16+
17+
**Example 2:**
18+
19+
**Input:** n = 3
20+
21+
**Output:** 3
22+
23+
**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
24+
25+
**Constraints:**
26+
27+
* `1 <= n <= 45`
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package g0001_0100.s0072_edit_distance
2+
3+
// #Hard #Top_100_Liked_Questions #String #Dynamic_Programming
4+
// #Algorithm_II_Day_18_Dynamic_Programming #Dynamic_Programming_I_Day_19
5+
// #Udemy_Dynamic_Programming #Big_O_Time_O(n^2)_Space_O(n2)
6+
// #2023_11_02_Time_487_ms_(100.00%)_Space_55.3_MB_(100.00%)
7+
8+
object Solution {
9+
def minDistance(w1: String, w2: String): Int = {
10+
val n1 = w1.length
11+
val n2 = w2.length
12+
13+
if (n2 > n1) {
14+
return minDistance(w2, w1)
15+
}
16+
17+
var dp = Array.range(0, n2 + 1)
18+
19+
for (j <- 0 to n2) {
20+
dp(j) = j
21+
}
22+
23+
for (i <- 1 to n1) {
24+
var pre = dp(0)
25+
dp(0) = i
26+
27+
for (j <- 1 to n2) {
28+
val tmp = dp(j)
29+
dp(j) =
30+
if (w1(i - 1) != w2(j - 1))
31+
1 + Math.min(pre, Math.min(dp(j), dp(j - 1)))
32+
else
33+
pre
34+
pre = tmp
35+
}
36+
}
37+
38+
dp(n2)
39+
}
40+
}

0 commit comments

Comments
 (0)