Skip to content

Commit 8070153

Browse files
committed
Improved arrays
1 parent 9fc3380 commit 8070153

File tree

10 files changed

+14
-31
lines changed
  • src/main/kotlin
    • g1501_1600/s1579_remove_max_number_of_edges_to_keep_graph_fully_traversable
    • g1601_1700
    • g1701_1800
    • g1801_1900

10 files changed

+14
-31
lines changed

src/main/kotlin/g1501_1600/s1579_remove_max_number_of_edges_to_keep_graph_fully_traversable/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package g1501_1600.s1579_remove_max_number_of_edges_to_keep_graph_fully_traversa
22

33
// #Hard #Graph #Union_Find #2023_06_14_Time_942_ms_(32.52%)_Space_92.5_MB_(100.00%)
44

5-
import java.util.Arrays
6-
75
class Solution {
86
fun maxNumEdgesToRemove(n: Int, edges: Array<IntArray>): Int {
9-
Arrays.sort(edges) { a: IntArray, b: IntArray -> b[0] - a[0] }
7+
edges.sortWith { a: IntArray, b: IntArray -> b[0] - a[0] }
108
val alice = IntArray(n + 1)
119
val rankAlice = IntArray(n + 1)
1210
val bob = IntArray(n + 1)

src/main/kotlin/g1601_1700/s1632_rank_transform_of_a_matrix/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package g1601_1700.s1632_rank_transform_of_a_matrix
33
// #Hard #Array #Greedy #Matrix #Graph #Union_Find #Topological_Sort
44
// #2023_06_17_Time_807_ms_(100.00%)_Space_96.5_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun matrixRankTransform(matrix: Array<IntArray>): Array<IntArray> {
108
val rowCount = matrix.size
@@ -49,7 +47,7 @@ class Solution {
4947
} else {
5048
val rowCount = matrix.size
5149
val ufind = IntArray(rowCount + matrix[0].size)
52-
Arrays.fill(ufind, -1)
50+
ufind.fill(-1)
5351
for (nIdx in startIdx until endIdx) {
5452
val r = nums[nIdx].toInt() shr 16 and 0xFFFF
5553
val c = nums[nIdx].toInt() and 0xFFFF

src/main/kotlin/g1601_1700/s1665_minimum_initial_energy_to_finish_tasks/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package g1601_1700.s1665_minimum_initial_energy_to_finish_tasks
22

33
// #Hard #Array #Sorting #Greedy #2023_06_15_Time_823_ms_(100.00%)_Space_114.6_MB_(100.00%)
44

5-
import java.util.Arrays
6-
75
class Solution {
86
fun minimumEffort(tasks: Array<IntArray>): Int {
9-
Arrays.sort(tasks) { a: IntArray, b: IntArray -> a[1] - a[0] - b[1] + b[0] }
7+
tasks.sortWith { a: IntArray, b: IntArray -> a[1] - a[0] - b[1] + b[0] }
108
var prev = 0
119
for (item in tasks) {
1210
prev = Math.max(prev + item[0], item[1])

src/main/kotlin/g1601_1700/s1691_maximum_height_by_stacking_cuboids/Solution.kt

+2-5
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@ package g1601_1700.s1691_maximum_height_by_stacking_cuboids
33
// #Hard #Array #Dynamic_Programming #Sorting
44
// #2023_06_15_Time_187_ms_(100.00%)_Space_38.6_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun maxHeight(cuboids: Array<IntArray>): Int {
108
for (a in cuboids) {
119
a.sort()
1210
}
13-
Arrays.sort(
14-
cuboids
15-
) { a: IntArray, b: IntArray ->
11+
12+
cuboids.sortWith sort@{ a: IntArray, b: IntArray ->
1613
if (a[0] != b[0]) {
1714
return@sort a[0] - b[0]
1815
} else if (a[1] != b[1]) {

src/main/kotlin/g1601_1700/s1697_checking_existence_of_edge_length_limited_paths/Solution.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package g1601_1700.s1697_checking_existence_of_edge_length_limited_paths
33
// #Hard #Array #Sorting #Graph #Union_Find
44
// #2023_06_15_Time_1411_ms_(72.90%)_Space_101.6_MB_(99.07%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
private class Dsu(n: Int) {
108
private val parent: IntArray
@@ -32,12 +30,12 @@ class Solution {
3230
}
3331

3432
fun distanceLimitedPathsExist(n: Int, edgeList: Array<IntArray>, queries: Array<IntArray>): BooleanArray {
35-
Arrays.sort(edgeList) { o1: IntArray, o2: IntArray -> Integer.compare(o1[2], o2[2]) }
33+
edgeList.sortWith { o1: IntArray, o2: IntArray -> Integer.compare(o1[2], o2[2]) }
3634
val data = Array(queries.size) { IntArray(4) }
3735
for (i in queries.indices) {
3836
data[i] = intArrayOf(queries[i][0], queries[i][1], queries[i][2], i)
3937
}
40-
Arrays.sort(data) { o1: IntArray, o2: IntArray -> Integer.compare(o1[2], o2[2]) }
38+
data.sortWith { o1: IntArray, o2: IntArray -> Integer.compare(o1[2], o2[2]) }
4139
val d = Dsu(n)
4240
var j = 0
4341
val ans = BooleanArray(queries.size)

src/main/kotlin/g1701_1800/s1710_maximum_units_on_a_truck/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ package g1701_1800.s1710_maximum_units_on_a_truck
22

33
// #Easy #Array #Sorting #Greedy #2023_06_16_Time_228_ms_(100.00%)_Space_38.5_MB_(100.00%)
44

5-
import java.util.Arrays
6-
75
@Suppress("NAME_SHADOWING")
86
class Solution {
97
fun maximumUnits(boxTypes: Array<IntArray>, truckSize: Int): Int {
108
var truckSize = truckSize
11-
Arrays.sort(boxTypes) { b1: IntArray, b2: IntArray -> Integer.compare(b2[1], b1[1]) }
9+
boxTypes.sortWith { b1: IntArray, b2: IntArray -> Integer.compare(b2[1], b1[1]) }
1210
var maxUnits = 0
1311
var i = 0
1412
while (truckSize > 0 && i < boxTypes.size) {

src/main/kotlin/g1701_1800/s1713_minimum_operations_to_make_a_subsequence/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package g1701_1800.s1713_minimum_operations_to_make_a_subsequence
33
// #Hard #Array #Hash_Table #Greedy #Binary_Search
44
// #2023_06_16_Time_862_ms_(100.00%)_Space_67.3_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun minOperations(target: IntArray, arr: IntArray): Int {
108
val map: MutableMap<Int, Int> = HashMap()
@@ -25,7 +23,7 @@ class Solution {
2523
var l = 0
2624
val arr = IntArray(n)
2725
for (num in list) {
28-
var index = Arrays.binarySearch(arr, 0, l, num!!)
26+
var index = arr.binarySearch(0, l, num!!)
2927
if (index < 0) {
3028
index = index.inv()
3129
}

src/main/kotlin/g1701_1800/s1751_maximum_number_of_events_that_can_be_attended_ii/Solution.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class Solution {
1717
}
1818
}
1919
val n = events.size
20-
Arrays.sort(events, { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) })
20+
events.sortWith { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) }
2121
val memo = Array(n) { IntArray(k + 1) }
2222
return dfs(events, 0, k, memo)
2323
}

src/main/kotlin/g1801_1900/s1847_closest_room/Solution.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package g1801_1900.s1847_closest_room
22

33
// #Hard #Array #Sorting #Binary_Search #2023_06_22_Time_1179_ms_(100.00%)_Space_92.1_MB_(100.00%)
44

5-
import java.util.Arrays
65
import java.util.TreeSet
76

87
class Solution {
@@ -12,8 +11,8 @@ class Solution {
1211
for (i in 0 until numQuery) {
1312
queries[i] = intArrayOf(queries[i][0], queries[i][1], i)
1413
}
15-
Arrays.sort(rooms) { a: IntArray, b: IntArray -> if (a[1] != b[1]) a[1] - b[1] else a[0] - b[0] }
16-
Arrays.sort(queries) { a: IntArray, b: IntArray -> if (a[1] != b[1]) a[1] - b[1] else a[0] - b[0] }
14+
rooms.sortWith { a: IntArray, b: IntArray -> if (a[1] != b[1]) a[1] - b[1] else a[0] - b[0] }
15+
queries.sortWith { a: IntArray, b: IntArray -> if (a[1] != b[1]) a[1] - b[1] else a[0] - b[0] }
1716
val roomIds = TreeSet<Int>()
1817
val result = IntArray(numQuery)
1918
var j = numRoom - 1

src/main/kotlin/g1801_1900/s1851_minimum_interval_to_include_each_query/Solution.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package g1801_1900.s1851_minimum_interval_to_include_each_query
33
// #Hard #Array #Sorting #Binary_Search #Heap_Priority_Queue #Line_Sweep
44
// #2023_06_22_Time_1612_ms_(87.50%)_Space_129.5_MB_(75.00%)
55

6-
import java.util.Arrays
76
import java.util.PriorityQueue
87

98
class Solution {
@@ -13,8 +12,8 @@ class Solution {
1312
for (i in 0 until numQuery) {
1413
queriesWithIndex[i] = intArrayOf(queries[i], i)
1514
}
16-
Arrays.sort(intervals, { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) })
17-
Arrays.sort(queriesWithIndex, { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) })
15+
intervals.sortWith { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) }
16+
queriesWithIndex.sortWith { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) }
1817
val minHeap = PriorityQueue({ a: IntArray, b: IntArray -> (a[1] - a[0]).compareTo(b[1] - b[0]) })
1918
val result = IntArray(numQuery)
2019
var j = 0

0 commit comments

Comments
 (0)