Skip to content

Commit bee194f

Browse files
authored
Improved tasks 41-102
1 parent 314fc93 commit bee194f

File tree

27 files changed

+148
-168
lines changed

27 files changed

+148
-168
lines changed

README.md

Lines changed: 102 additions & 102 deletions
Large diffs are not rendered by default.

src/main/ts/g0001_0100/s0041_first_missing_positive/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// #Hard #Top_100_Liked_Questions #Top_Interview_Questions #Array #Hash_Table #Udemy_Arrays
2-
// #Big_O_Time_O(n)_Space_O(n) #2023_09_29_Time_55_ms_(98.51%)_Space_49.8_MB_(60.20%)
2+
// #Big_O_Time_O(n)_Space_O(n) #2025_03_23_Time_1_ms_(99.11%)_Space_65.96_MB_(40.18%)
33

44
function firstMissingPositive(nums: number[]): number {
55
let i = 0

src/main/ts/g0001_0100/s0042_trapping_rain_water/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Hard #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming #Two_Pointers
22
// #Stack #Monotonic_Stack #Dynamic_Programming_I_Day_9 #Udemy_Two_Pointers
33
// #Top_Interview_150_Array/String #Big_O_Time_O(n)_Space_O(1)
4-
// #2023_09_30_Time_46_ms_(99.52%)_Space_44.4_MB_(97.58%)
4+
// #2025_03_23_Time_0_ms_(100.00%)_Space_57.78_MB_(55.13%)
55

66
function trap(height: number[]): number {
77
let result = 0
Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,23 @@
11
// #Medium #Top_100_Liked_Questions #Array #Dynamic_Programming #Greedy
22
// #Algorithm_II_Day_13_Dynamic_Programming #Dynamic_Programming_I_Day_4
33
// #Top_Interview_150_Array/String #Big_O_Time_O(n)_Space_O(1)
4-
// #2023_09_30_Time_50_ms_(95.93%)_Space_44.9_MB_(65.88%)
4+
// #2025_03_23_Time_1_ms_(84.27%)_Space_58.46_MB_(28.93%)
55

6-
function jump(nums: number[]): number { //NOSONAR
7-
let minJmp = new Array(nums.length)
8-
if (nums.length === 1) return 0
9-
let prevIndex = 0
10-
minJmp[prevIndex] = 0
11-
while (prevIndex < nums.length - 1) {
12-
let nextMaxJmpTo = nums[prevIndex] + prevIndex
13-
let prevIndexJmp = minJmp[prevIndex]
6+
function jump(nums: number[]): number {
7+
let minJump = 0,
8+
farthest = 0,
9+
currentEnd = 0
10+
for (let i = 0; i < nums.length - 1; i++) {
11+
farthest = Math.max(farthest, i + nums[i])
12+
// If we've reached the end of the current jump range
13+
if (i === currentEnd) {
14+
minJump++
15+
currentEnd = farthest
1416

15-
let farthestJumpVal = -1
16-
let farthestJumpIndex = -1
17-
for (let i = nextMaxJmpTo; ; i--) {
18-
if (i >= nums.length) {
19-
continue
20-
}
21-
if (i === nums.length - 1) {
22-
return prevIndexJmp + 1
23-
}
24-
if (minJmp[i] != undefined) {
25-
break
26-
}
27-
minJmp[i] = prevIndexJmp + 1
28-
let curmaxTo = nums[i] + i
29-
if (farthestJumpVal < curmaxTo) {
30-
farthestJumpVal = curmaxTo
31-
farthestJumpIndex = i
32-
}
17+
if (currentEnd >= nums.length - 1) break
3318
}
34-
if (farthestJumpIndex === -1) {
35-
return -1
36-
}
37-
prevIndex = farthestJumpIndex
3819
}
39-
return minJmp[nums.length - 1]
20+
return minJump
4021
}
4122

4223
export { jump }

src/main/ts/g0001_0100/s0046_permutations/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Backtracking
22
// #Algorithm_I_Day_11_Recursion_Backtracking #Level_2_Day_20_Brute_Force/Backtracking
33
// #Udemy_Backtracking/Recursion #Top_Interview_150_Backtracking #Big_O_Time_O(n*n!)_Space_O(n+n!)
4-
// #2023_09_30_Time_56_ms_(96.26%)_Space_45.7_MB_(55.35%)
4+
// #2025_03_23_Time_1_ms_(84.44%)_Space_60.84_MB_(26.93%)
55

66
function permute(nums: number[]): number[][] {
77
const result: number[][] = []

src/main/ts/g0001_0100/s0048_rotate_image/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Math #Matrix
22
// #Data_Structure_II_Day_3_Array #Programming_Skills_II_Day_7 #Udemy_2D_Arrays/Matrix
33
// #Top_Interview_150_Matrix #Big_O_Time_O(n^2)_Space_O(1)
4-
// #2023_09_30_Time_45_ms_(95.31%)_Space_44.4_MB_(48.24%)
4+
// #2025_03_23_Time_0_ms_(100.00%)_Space_57.37_MB_(17.79%)
55

66
/*
77
Do not return anything, modify matrix in-place instead.

src/main/ts/g0001_0100/s0049_group_anagrams/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #String #Hash_Table #Sorting
22
// #Data_Structure_II_Day_8_String #Programming_Skills_II_Day_11 #Udemy_Strings
33
// #Top_Interview_150_Hashmap #Big_O_Time_O(n*k_log_k)_Space_O(n)
4-
// #2023_09_30_Time_93_ms_(97.29%)_Space_52_MB_(99.08%)
4+
// #2025_03_23_Time_27_ms_(78.99%)_Space_68.93_MB_(28.40%)
55

66
function groupAnagrams(strs: string[]): string[][] {
77
if (strs.length === 1) return [strs]

src/main/ts/g0001_0100/s0051_n_queens/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// #Hard #Top_100_Liked_Questions #Array #Backtracking #Big_O_Time_O(N!)_Space_O(N)
2-
// #2023_09_30_Time_57_ms_(93.84%)_Space_45_MB_(83.56%)
2+
// #2025_03_23_Time_6_ms_(95.85%)_Space_59.90_MB_(33.61%)
33

44
function solveNQueens(n: number): string[][] {
55
const result: string[][] = []

src/main/ts/g0001_0100/s0053_maximum_subarray/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming
22
// #Divide_and_Conquer #Data_Structure_I_Day_1_Array #Dynamic_Programming_I_Day_5
33
// #Udemy_Famous_Algorithm #Top_Interview_150_Kadane's_Algorithm #Big_O_Time_O(n)_Space_O(1)
4-
// #2023_09_30_Time_66_ms_(90.36%)_Space_51.9_MB_(80.92%)
4+
// #2025_03_23_Time_0_ms_(100.00%)_Space_65.50_MB_(44.96%)
55

66
function maxSubArray(nums: number[]): number {
77
let curSum: number = nums[0]

src/main/ts/g0001_0100/s0055_jump_game/solution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming #Greedy
22
// #Algorithm_II_Day_12_Dynamic_Programming #Dynamic_Programming_I_Day_4 #Udemy_Arrays
33
// #Top_Interview_150_Array/String #Big_O_Time_O(n)_Space_O(1)
4-
// #2023_09_30_Time_58_ms_(91.95%)_Space_47.4_MB_(70.79%)
4+
// #2025_03_23_Time_0_ms_(100.00%)_Space_59.92_MB_(51.18%)
55

66
function canJump(nums: number[]): boolean {
77
let availableSteps = nums[0]

0 commit comments

Comments
 (0)