Skip to content

Commit 9e140e1

Browse files
authored
Improved task 56
1 parent 710e44a commit 9e140e1

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.9'
546546
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
547547
|-|-|-|-|-|-
548548
| 0057 |[Insert Interval](src.save/main/kotlin/g0001_0100/s0057_insert_interval/Solution.kt)| Medium | Array | 257 | 99.52
549-
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 323 | 99.68
549+
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 320 | 94.22
550550

551551
#### Day 18 Stack
552552

@@ -661,7 +661,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.9'
661661
| 0054 |[Spiral Matrix](src.save/main/kotlin/g0001_0100/s0054_spiral_matrix/Solution.kt)| Medium | Top_Interview_Questions, Array, Matrix, Simulation | 224 | 62.50
662662
| 0048 |[Rotate Image](src.save/main/kotlin/g0001_0100/s0048_rotate_image/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Math, Matrix | 287 | 46.50
663663
| 0073 |[Set Matrix Zeroes](src.save/main/kotlin/g0001_0100/s0073_set_matrix_zeroes/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table, Matrix | 255 | 100.00
664-
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 323 | 99.68
664+
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 320 | 94.22
665665

666666
#### Udemy Linked List
667667

@@ -889,7 +889,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.9'
889889
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
890890
|-|-|-|-|-|-
891891
| 0075 |[Sort Colors](src.save/main/kotlin/g0001_0100/s0075_sort_colors/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting, Two_Pointers | 198 | 85.66
892-
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 323 | 99.68
892+
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Sorting | 320 | 94.22
893893
| 0706 |[Design HashMap](src/main/kotlin/g0701_0800/s0706_design_hashmap/MyHashMap.kt)| Easy | Array, Hash_Table, Design, Linked_List, Hash_Function | 405 | 92.11
894894

895895
#### Day 3 Array
@@ -2209,7 +2209,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.9'
22092209
| 0059 |[Spiral Matrix II](src.save/main/kotlin/g0001_0100/s0059_spiral_matrix_ii/Solution.kt)| Medium | Array, Matrix, Simulation, Data_Structure_II_Day_3_Array | 153 | 100.00
22102210
| 0058 |[Length of Last Word](src.save/main/kotlin/g0001_0100/s0058_length_of_last_word/Solution.kt)| Easy | String, Programming_Skills_II_Day_6, Udemy_Arrays | 243 | 63.33
22112211
| 0057 |[Insert Interval](src.save/main/kotlin/g0001_0100/s0057_insert_interval/Solution.kt)| Medium | Array, Level_2_Day_17_Interval | 257 | 99.52
2212-
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| 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 | 323 | 99.68
2212+
| 0056 |[Merge Intervals](src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt)| 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 | 320 | 94.22
22132213
| 0055 |[Jump Game](src.save/main/kotlin/g0001_0100/s0055_jump_game/Solution.kt)| 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 | 670 | 66.67
22142214
| 0054 |[Spiral Matrix](src.save/main/kotlin/g0001_0100/s0054_spiral_matrix/Solution.kt)| Medium | Top_Interview_Questions, Array, Matrix, Simulation, Programming_Skills_II_Day_8, Level_2_Day_1_Implementation/Simulation, Udemy_2D_Arrays/Matrix | 224 | 62.50
22152215
| 0053 |[Maximum Subarray](src.save/main/kotlin/g0001_0100/s0053_maximum_subarray/Solution.kt)| 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 | 662 | 82.48

src.save/main/kotlin/g0001_0100/s0056_merge_intervals/Solution.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,27 @@ package g0001_0100.s0056_merge_intervals
22

33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Sorting
44
// #Data_Structure_II_Day_2_Array #Level_2_Day_17_Interval #Udemy_2D_Arrays/Matrix
5-
// #2022_08_29_Time_323_ms_(99.68%)_Space_43_MB_(99.04%)
5+
// #2023_02_27_Time_320_ms_(94.22%)_Space_44.4_MB_(72.95%)
66

77
class Solution {
88
fun merge(intervals: Array<IntArray>): Array<IntArray> {
9-
intervals.sortWith { a: IntArray, b: IntArray ->
10-
Integer.compare(
11-
a[0],
12-
b[0]
13-
)
14-
}
15-
val list: MutableList<IntArray> = ArrayList()
16-
var current = intervals[0]
17-
list.add(current)
18-
for (next in intervals) {
19-
if (current[1] >= next[0]) {
20-
current[1] = Math.max(current[1], next[1])
21-
} else {
22-
current = next
23-
list.add(current)
9+
val result: MutableList<IntArray> = mutableListOf()
10+
if (intervals.size <= 1) return intervals
11+
intervals.sortBy { it.first() }
12+
var currentRange = 1
13+
var begin = intervals[0][0]
14+
var end = intervals[0][1]
15+
while (currentRange < intervals.size) {
16+
if (intervals[currentRange][0] > end) {
17+
result.add(intArrayOf(begin, end))
18+
begin = intervals[currentRange][0]
19+
end = intervals[currentRange][1]
20+
} else if (intervals[currentRange][1] > end) {
21+
end = intervals[currentRange][1]
2422
}
23+
currentRange++
2524
}
26-
return list.toTypedArray()
25+
result.add(intArrayOf(begin, end))
26+
return result.toTypedArray()
2727
}
2828
}

0 commit comments

Comments
 (0)