Skip to content

Commit 241fdc1

Browse files
authored
Added tasks 42-62
1 parent 3889fc0 commit 241fdc1

File tree

31 files changed

+853
-0
lines changed

31 files changed

+853
-0
lines changed

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
107107

108108
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
109109
|-|-|-|-|-|-
110+
| 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
110111

111112
#### Day 12 Dynamic Programming
112113

@@ -191,11 +192,14 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
191192

192193
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
193194
|-|-|-|-|-|-
195+
| 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
194196

195197
#### Day 13 Dynamic Programming
196198

197199
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
198200
|-|-|-|-|-|-
201+
| 0045 |[Jump Game II](src/main/scala/g0001_0100/s0045_jump_game_ii/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Greedy, Big_O_Time_O(n)_Space_O(1) | 510 | 88.52
202+
| 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, Big_O_Time_O(m\*n)_Space_O(m\*n) | 405 | 70.18
199203

200204
#### Day 14 Dynamic Programming
201205

@@ -426,11 +430,14 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
426430

427431
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
428432
|-|-|-|-|-|-
433+
| 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
434+
| 0045 |[Jump Game II](src/main/scala/g0001_0100/s0045_jump_game_ii/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Greedy, Big_O_Time_O(n)_Space_O(1) | 510 | 88.52
429435

430436
#### Day 5
431437

432438
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
433439
|-|-|-|-|-|-
440+
| 0053 |[Maximum Subarray](src/main/scala/g0001_0100/s0053_maximum_subarray/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Divide_and_Conquer, Big_O_Time_O(n)_Space_O(1) | 766 | 84.95
434441

435442
#### Day 6
436443

@@ -451,6 +458,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
451458

452459
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
453460
|-|-|-|-|-|-
461+
| 0042 |[Trapping Rain Water](src/main/scala/g0001_0100/s0042_trapping_rain_water/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Two_Pointers, Stack, Monotonic_Stack, Big_O_Time_O(n)_Space_O(1) | 521 | 87.88
454462

455463
#### Day 10
456464

@@ -481,6 +489,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
481489

482490
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
483491
|-|-|-|-|-|-
492+
| 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, Big_O_Time_O(m\*n)_Space_O(m\*n) | 405 | 70.18
484493

485494
#### Day 16
486495

@@ -611,6 +620,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
611620

612621
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
613622
|-|-|-|-|-|-
623+
| 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
614624

615625
#### Day 8
616626

@@ -631,6 +641,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
631641

632642
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
633643
|-|-|-|-|-|-
644+
| 0049 |[Group Anagrams](src/main/scala/g0001_0100/s0049_group_anagrams/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, String, Hash_Table, Sorting, Big_O_Time_O(n\*k_log_k)_Space_O(n) | 618 | 91.67
634645

635646
#### Day 12
636647

@@ -859,6 +870,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
859870

860871
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
861872
|-|-|-|-|-|-
873+
| 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, Big_O_Time_O(m\*n)_Space_O(m\*n) | 405 | 70.18
862874

863875
#### Day 12 Sliding Window/Two Pointer
864876

@@ -970,6 +982,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
970982

971983
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
972984
|-|-|-|-|-|-
985+
| 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
973986

974987
#### Day 18 Stack
975988

@@ -986,6 +999,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
986999
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
9871000
|-|-|-|-|-|-
9881001
| 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
1002+
| 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
9891003

9901004
### Udemy
9911005

@@ -1001,6 +1015,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10011015
| 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
10021016
| 0020 |[Valid Parentheses](src/main/scala/g0001_0100/s0020_valid_parentheses/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, String, Stack, Big_O_Time_O(n)_Space_O(n) | 449 | 65.58
10031017
| 0005 |[Longest Palindromic Substring](src/main/scala/g0001_0100/s0005_longest_palindromic_substring/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, String, Dynamic_Programming, Big_O_Time_O(n)_Space_O(n) | 502 | 87.65
1018+
| 0049 |[Group Anagrams](src/main/scala/g0001_0100/s0049_group_anagrams/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, String, Hash_Table, Sorting, Big_O_Time_O(n\*k_log_k)_Space_O(n) | 618 | 91.67
10041019

10051020
#### Udemy Binary Search
10061021

@@ -1013,18 +1028,21 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10131028
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10141029
|-|-|-|-|-|-
10151030
| 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
1031+
| 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
10161032
| 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
10171033

10181034
#### Udemy Two Pointers
10191035

10201036
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10211037
|-|-|-|-|-|-
1038+
| 0042 |[Trapping Rain Water](src/main/scala/g0001_0100/s0042_trapping_rain_water/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Two_Pointers, Stack, Monotonic_Stack, Big_O_Time_O(n)_Space_O(1) | 521 | 87.88
10221039
| 0015 |[3Sum](src/main/scala/g0001_0100/s0015_3sum/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Two_Pointers, Big_O_Time_O(n\*log(n))_Space_O(n^2) | 721 | 95.24
10231040

10241041
#### Udemy Famous Algorithm
10251042

10261043
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10271044
|-|-|-|-|-|-
1045+
| 0053 |[Maximum Subarray](src/main/scala/g0001_0100/s0053_maximum_subarray/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Divide_and_Conquer, Big_O_Time_O(n)_Space_O(1) | 766 | 84.95
10281046

10291047
#### Udemy Sorting Algorithms
10301048

@@ -1035,6 +1053,8 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10351053

10361054
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10371055
|-|-|-|-|-|-
1056+
| 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
1057+
| 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
10381058

10391059
#### Udemy Linked List
10401060

@@ -1072,6 +1092,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10721092
| 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
10731093
| 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
10741094
| 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
1095+
| 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
10751096

10761097
#### Udemy Bit Manipulation
10771098

@@ -1089,6 +1110,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
10891110

10901111
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
10911112
|-|-|-|-|-|-
1113+
| 0053 |[Maximum Subarray](src/main/scala/g0001_0100/s0053_maximum_subarray/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Divide_and_Conquer, Big_O_Time_O(n)_Space_O(1) | 766 | 84.95
10921114

10931115
#### Day 2 Array
10941116

@@ -1170,11 +1192,13 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
11701192

11711193
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
11721194
|-|-|-|-|-|-
1195+
| 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
11731196

11741197
#### Day 3 Array
11751198

11761199
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
11771200
|-|-|-|-|-|-
1201+
| 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
11781202

11791203
#### Day 4 Array
11801204

@@ -1200,6 +1224,7 @@ implementation 'com.github.javadev:leetcode-in-scala:1.0'
12001224

12011225
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
12021226
|-|-|-|-|-|-
1227+
| 0049 |[Group Anagrams](src/main/scala/g0001_0100/s0049_group_anagrams/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, String, Hash_Table, Sorting, Big_O_Time_O(n\*k_log_k)_Space_O(n) | 618 | 91.67
12031228

12041229
#### Day 9 String
12051230

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

12751300
| # | Title | Difficulty | Tag | Time, ms | Time, %
12761301
|------|----------------|-------------|-------------|----------|---------
1302+
| 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
1303+
| 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
1304+
| 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
1305+
| 0053 |[Maximum Subarray](src/main/scala/g0001_0100/s0053_maximum_subarray/Solution.scala)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Divide_and_Conquer, Data_Structure_I_Day_1_Array, Dynamic_Programming_I_Day_5, Udemy_Famous_Algorithm, Big_O_Time_O(n)_Space_O(1) | 766 | 84.95
1306+
| 0051 |[N-Queens](src/main/scala/g0001_0100/s0051_n_queens/Solution.scala)| Hard | Top_100_Liked_Questions, Array, Backtracking, Big_O_Time_O(N!)_Space_O(N) | 483 | 93.33
1307+
| 0049 |[Group Anagrams](src/main/scala/g0001_0100/s0049_group_anagrams/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, String, Hash_Table, Sorting, Data_Structure_II_Day_8_String, Programming_Skills_II_Day_11, Udemy_Strings, Big_O_Time_O(n\*k_log_k)_Space_O(n) | 618 | 91.67
1308+
| 0048 |[Rotate Image](src/main/scala/g0001_0100/s0048_rotate_image/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Math, Matrix, Data_Structure_II_Day_3_Array, Programming_Skills_II_Day_7, Udemy_2D_Arrays/Matrix, Big_O_Time_O(n^2)_Space_O(1) | 472 | 66.67
1309+
| 0046 |[Permutations](src/main/scala/g0001_0100/s0046_permutations/Solution.scala)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Backtracking, Algorithm_I_Day_11_Recursion_Backtracking, Level_2_Day_20_Brute_Force/Backtracking, Udemy_Backtracking/Recursion, Big_O_Time_O(n\*n!)_Space_O(n+n!) | 470 | 92.31
1310+
| 0045 |[Jump Game II](src/main/scala/g0001_0100/s0045_jump_game_ii/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Greedy, Algorithm_II_Day_13_Dynamic_Programming, Dynamic_Programming_I_Day_4, Big_O_Time_O(n)_Space_O(1) | 510 | 88.52
1311+
| 0042 |[Trapping Rain Water](src/main/scala/g0001_0100/s0042_trapping_rain_water/Solution.scala)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming, Two_Pointers, Stack, Monotonic_Stack, Dynamic_Programming_I_Day_9, Udemy_Two_Pointers, Big_O_Time_O(n)_Space_O(1) | 521 | 87.88
12771312
| 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, Udemy_Arrays, Big_O_Time_O(n)_Space_O(n) | 650 | 100.00
12781313
| 0039 |[Combination Sum](src/main/scala/g0001_0100/s0039_combination_sum/Solution.scala)| Medium | Top_100_Liked_Questions, Array, Backtracking, Algorithm_II_Day_10_Recursion_Backtracking, Level_2_Day_20_Brute_Force/Backtracking, Udemy_Backtracking/Recursion, Big_O_Time_O(2^n)_Space_O(n+2^n) | 488 | 97.50
12791314
| 0035 |[Search Insert Position](src/main/scala/g0001_0100/s0035_search_insert_position/Solution.scala)| Easy | Top_100_Liked_Questions, Array, Binary_Search, Algorithm_I_Day_1_Binary_Search, Binary_Search_I_Day_2, Big_O_Time_O(log_n)_Space_O(1) | 466 | 87.04
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package g0001_0100.s0042_trapping_rain_water
2+
3+
// #Hard #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming #Two_Pointers
4+
// #Stack #Monotonic_Stack #Dynamic_Programming_I_Day_9 #Udemy_Two_Pointers
5+
// #Big_O_Time_O(n)_Space_O(1) #2023_10_31_Time_521_ms_(87.88%)_Space_58_MB_(24.24%)
6+
7+
object Solution {
8+
def trap(height: Array[Int]): Int = {
9+
var left = 0
10+
var right = height.length - 1
11+
var result = 0
12+
var lowerWall = 0
13+
14+
while (left < right) {
15+
val leftValue = height(left)
16+
val rightValue = height(right)
17+
18+
if (leftValue < rightValue) {
19+
lowerWall = Math.max(leftValue, lowerWall)
20+
result += lowerWall - leftValue
21+
left += 1
22+
} else {
23+
lowerWall = Math.max(rightValue, lowerWall)
24+
result += lowerWall - rightValue
25+
right -= 1
26+
}
27+
}
28+
29+
result
30+
}
31+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
42\. Trapping Rain Water
2+
3+
Hard
4+
5+
Given `n` non-negative integers representing an elevation map where the width of each bar is `1`, compute how much water it can trap after raining.
6+
7+
**Example 1:**
8+
9+
![](https://assets.leetcode.com/uploads/2018/10/22/rainwatertrap.png)
10+
11+
**Input:** height = [0,1,0,2,1,0,1,3,2,1,2,1]
12+
13+
**Output:** 6
14+
15+
**Explanation:** The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.
16+
17+
**Example 2:**
18+
19+
**Input:** height = [4,2,0,3,2,5]
20+
21+
**Output:** 9
22+
23+
**Constraints:**
24+
25+
* `n == height.length`
26+
* <code>1 <= n <= 2 * 10<sup>4</sup></code>
27+
* <code>0 <= height[i] <= 10<sup>5</sup></code>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package g0001_0100.s0045_jump_game_ii
2+
3+
// #Medium #Top_100_Liked_Questions #Array #Dynamic_Programming #Greedy
4+
// #Algorithm_II_Day_13_Dynamic_Programming #Dynamic_Programming_I_Day_4
5+
// #Big_O_Time_O(n)_Space_O(1) #2023_10_31_Time_510_ms_(88.52%)_Space_56_MB_(65.57%)
6+
7+
object Solution {
8+
def jump(nums: Array[Int]): Int = {
9+
var length = 0
10+
var maxLength = 0
11+
var minJump = 0
12+
13+
for (i <- 0 until nums.length - 1) {
14+
length -= 1
15+
maxLength -= 1
16+
maxLength = math.max(maxLength, nums(i))
17+
18+
if (length <= 0) {
19+
length = maxLength
20+
minJump += 1
21+
}
22+
23+
if (length >= nums.length - i - 1) {
24+
return minJump
25+
}
26+
}
27+
28+
minJump
29+
}
30+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
45\. Jump Game II
2+
3+
Medium
4+
5+
Given an array of non-negative integers `nums`, you are initially positioned at the first index of the array.
6+
7+
Each element in the array represents your maximum jump length at that position.
8+
9+
Your goal is to reach the last index in the minimum number of jumps.
10+
11+
You can assume that you can always reach the last index.
12+
13+
**Example 1:**
14+
15+
**Input:** nums = [2,3,1,1,4]
16+
17+
**Output:** 2
18+
19+
**Explanation:** The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 steps to the last index.
20+
21+
**Example 2:**
22+
23+
**Input:** nums = [2,3,0,1,4]
24+
25+
**Output:** 2
26+
27+
**Constraints:**
28+
29+
* <code>1 <= nums.length <= 10<sup>4</sup></code>
30+
* `0 <= nums[i] <= 1000`
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package g0001_0100.s0046_permutations
2+
3+
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Backtracking
4+
// #Algorithm_I_Day_11_Recursion_Backtracking #Level_2_Day_20_Brute_Force/Backtracking
5+
// #Udemy_Backtracking/Recursion #Big_O_Time_O(n*n!)_Space_O(n+n!)
6+
// #2023_10_31_Time_470_ms_(92.31%)_Space_56.6_MB_(41.03%)
7+
8+
object Solution {
9+
def permute(nums: Array[Int]): List[List[Int]] = {
10+
if (nums == null || nums.isEmpty) {
11+
return List()
12+
}
13+
14+
val finalResult = new scala.collection.mutable.ListBuffer[List[Int]]()
15+
val used = Array.fill[Boolean](nums.length)(false)
16+
17+
def permuteRecur(currResult: scala.collection.mutable.ListBuffer[Int]): Unit = {
18+
if (currResult.size == nums.length) {
19+
finalResult += currResult.toList
20+
return
21+
}
22+
23+
for (i <- nums.indices) {
24+
if (!used(i)) {
25+
currResult += nums(i)
26+
used(i) = true
27+
permuteRecur(currResult)
28+
used(i) = false
29+
currResult.remove(currResult.size - 1)
30+
}
31+
}
32+
}
33+
34+
permuteRecur(new scala.collection.mutable.ListBuffer[Int]())
35+
finalResult.toList
36+
}
37+
}

0 commit comments

Comments
 (0)