Skip to content

Commit a248164

Browse files
committed
Improved arrays
1 parent 61d417c commit a248164

File tree

22 files changed

+31
-70
lines changed
  • src/main/kotlin

22 files changed

+31
-70
lines changed

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@ package g1801_1900.s1886_determine_whether_matrix_can_be_obtained_by_rotation
33
// #Easy #Array #Matrix #Programming_Skills_II_Day_7
44
// #2023_06_22_Time_147_ms_(85.71%)_Space_34.1_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
9-
fun findRotation(mat: Array<IntArray>, target: Array<IntArray?>?): Boolean {
7+
fun findRotation(mat: Array<IntArray>, target: Array<IntArray>): Boolean {
108
for (i in 0..3) {
11-
if (Arrays.deepEquals(mat, target)) {
9+
if (mat.contentDeepEquals(target)) {
1210
return true
1311
}
1412
rotate(mat)

src/main/kotlin/g1901_2000/s1942_the_number_of_the_smallest_unoccupied_chair/Solution.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package g1901_2000.s1942_the_number_of_the_smallest_unoccupied_chair
33
// #Medium #Array #Heap_Priority_Queue #Ordered_Set
44
// #2023_06_20_Time_549_ms_(100.00%)_Space_63.6_MB_(100.00%)
55

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

98
class Solution {
@@ -15,9 +14,8 @@ class Solution {
1514
all[2 * i] = Person(i, times[i][0], false, true)
1615
all[2 * i + 1] = Person(i, times[i][1], true, false)
1716
}
18-
Arrays.sort(
19-
all
20-
) { a: Person?, b: Person? ->
17+
18+
all.sortWith { a: Person?, b: Person? ->
2119
val i = if (a!!.leave) -1 else 1
2220
val j = if (b!!.leave) -1 else 1
2321
if (a.time == b.time) i - j else a.time - b.time

src/main/kotlin/g1901_2000/s1985_find_the_kth_largest_integer_in_the_array/Solution.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@ package g1901_2000.s1985_find_the_kth_largest_integer_in_the_array
33
// #Medium #Array #String #Sorting #Heap_Priority_Queue #Divide_and_Conquer #Quickselect
44
// #2023_06_21_Time_397_ms_(100.00%)_Space_55.3_MB_(66.67%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun kthLargestNumber(nums: Array<String>, k: Int): String {
10-
Arrays.sort(nums) { n1: String, n2: String -> compareStringInt(n2, n1) }
8+
nums.sortWith { n1: String, n2: String -> compareStringInt(n2, n1) }
119
return nums[k - 1]
1210
}
1311

1412
private fun compareStringInt(n1: String, n2: String): Int {
1513
if (n1.length != n2.length) {
1614
return if (n1.length < n2.length) -1 else 1
1715
}
18-
for (i in 0 until n1.length) {
16+
for (i in n1.indices) {
1917
val n1Digit = n1[i].code - '0'.code
2018
val n2Digit = n2[i].code - '0'.code
2119
if (n1Digit > n2Digit) {

src/main/kotlin/g1901_2000/s1996_the_number_of_weak_characters_in_the_game/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package g1901_2000.s1996_the_number_of_weak_characters_in_the_game
33
// #Medium #Array #Sorting #Greedy #Stack #Monotonic_Stack
44
// #2023_06_21_Time_1234_ms_(100.00%)_Space_98.2_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun numberOfWeakCharacters(properties: Array<IntArray>): Int {
10-
Arrays.sort(properties) { a: IntArray, b: IntArray -> if (a[0] == b[0]) b[1] - a[1] else a[0] - b[0] }
8+
properties.sortWith { a: IntArray, b: IntArray -> if (a[0] == b[0]) b[1] - a[1] else a[0] - b[0] }
119
var max = properties[properties.size - 1][1]
1210
var count = 0
1311
for (i in properties.size - 2 downTo 0) {

src/main/kotlin/g2001_2100/s2008_maximum_earnings_from_taxi/Solution.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ package g2001_2100.s2008_maximum_earnings_from_taxi
33
// #Medium #Array #Dynamic_Programming #Sorting #Binary_Search
44
// #2023_06_23_Time_1008_ms_(100.00%)_Space_67.3_MB_(100.00%)
55

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

98
@Suppress("UNUSED_PARAMETER")
109
class Solution {
1110
fun maxTaxiEarnings(n: Int, rides: Array<IntArray>): Long {
1211
// Sort based on start time
13-
Arrays.sort(rides) { a: IntArray, b: IntArray ->
12+
rides.sortWith { a: IntArray, b: IntArray ->
1413
a[0] - b[0]
1514
}
1615
var max: Long = 0

src/main/kotlin/g2001_2100/s2054_two_best_non_overlapping_events/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package g2001_2100.s2054_two_best_non_overlapping_events
33
// #Medium #Array #Dynamic_Programming #Sorting #Binary_Search #Heap_Priority_Queue
44
// #2023_06_25_Time_851_ms_(100.00%)_Space_108.7_MB_(50.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun maxTwoEvents(events: Array<IntArray>): Int {
10-
Arrays.sort(events) { a: IntArray, b: IntArray -> a[0] - b[0] }
8+
events.sortWith { a: IntArray, b: IntArray -> a[0] - b[0] }
119
val max = IntArray(events.size)
1210
for (i in events.indices.reversed()) {
1311
if (i == events.size - 1) {

src/main/kotlin/g2001_2100/s2092_find_all_people_with_secret/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@ package g2001_2100.s2092_find_all_people_with_secret
33
// #Hard #Sorting #Depth_First_Search #Breadth_First_Search #Graph #Union_Find
44
// #2023_06_28_Time_1086_ms_(100.00%)_Space_104.2_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
@Suppress("NAME_SHADOWING")
97
class Solution {
108
fun findAllPeople(n: Int, meetings: Array<IntArray>, firstPerson: Int): List<Int> {
11-
Arrays.sort(meetings) { a: IntArray, b: IntArray -> a[2] - b[2] }
9+
meetings.sortWith { a: IntArray, b: IntArray -> a[2] - b[2] }
1210
val uf = UF(n)
1311
// base
1412
uf.union(0, firstPerson)

src/main/kotlin/g2101_2200/s2136_earliest_possible_day_of_full_bloom/Solution.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package g2101_2200.s2136_earliest_possible_day_of_full_bloom
22

33
// #Hard #Array #Sorting #Greedy #2023_06_25_Time_968_ms_(100.00%)_Space_57.2_MB_(100.00%)
44

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

87
class Solution {
@@ -15,7 +14,7 @@ class Solution {
1514
for (i in 0 until n) {
1615
arr[i] = Seed(plantTime[i], growTime[i])
1716
}
18-
Arrays.sort(arr, Collections.reverseOrder())
17+
arr.sortWith(Collections.reverseOrder())
1918
var ans = arr[0]!!.plantTime + arr[0]!!.growTime
2019
var lastPlantDay = arr[0]!!.plantTime
2120
for (i in 1 until n) {

src/main/kotlin/g2201_2300/s2250_count_number_of_rectangles_containing_each_point/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package g2201_2300.s2250_count_number_of_rectangles_containing_each_point
33
// #Medium #Array #Sorting #Binary_Search #Binary_Indexed_Tree
44
// #2023_06_27_Time_967_ms_(100.00%)_Space_85.4_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun countRectangles(rectangles: Array<IntArray>, points: Array<IntArray>): IntArray {
108
val n = rectangles.size
@@ -14,7 +12,7 @@ class Solution {
1412
for (i in 0 until q) {
1513
es[n + i] = intArrayOf(points[i][0], points[i][1], i)
1614
}
17-
Arrays.sort(es) { x: IntArray?, y: IntArray? -> if (x!![0] != y!![0]) -(x[0] - y[0]) else x.size - y.size }
15+
es.sortWith { x: IntArray?, y: IntArray? -> if (x!![0] != y!![0]) -(x[0] - y[0]) else x.size - y.size }
1816
val ct = IntArray(101)
1917
val ans = IntArray(q)
2018
for (e in es) {

src/main/kotlin/g2201_2300/s2251_number_of_flowers_in_full_bloom/Solution.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,20 @@ package g2201_2300.s2251_number_of_flowers_in_full_bloom
33
// #Hard #Array #Hash_Table #Sorting #Binary_Search #Prefix_Sum #Ordered_Set
44
// #2023_06_28_Time_973_ms_(100.00%)_Space_88.6_MB_(100.00%)
55

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

98
class Solution {
109
fun fullBloomFlowers(flowers: Array<IntArray>, persons: IntArray): IntArray {
11-
Arrays.sort(flowers, { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) })
10+
flowers.sortWith { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) }
1211
val ans = IntArray(persons.size)
13-
val pq = PriorityQueue({ a: Pair, b: Pair -> a.j.compareTo(b.j) })
12+
val pq = PriorityQueue { a: Pair, b: Pair -> a.j.compareTo(b.j) }
1413
var j = 0
1514
val t = Array(persons.size) { IntArray(2) }
1615
for (i in persons.indices) {
1716
t[i][0] = persons[i]
1817
t[i][1] = i
1918
}
20-
Arrays.sort(t, { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) })
19+
t.sortWith { a: IntArray, b: IntArray -> a[0].compareTo(b[0]) }
2120
for (ints in t) {
2221
while (pq.isNotEmpty()) {
2322
if (pq.peek().j < ints[0]) {

src/main/kotlin/g2201_2300/s2271_maximum_white_tiles_covered_by_a_carpet/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package g2201_2300.s2271_maximum_white_tiles_covered_by_a_carpet
33
// #Medium #Array #Sorting #Greedy #Binary_Search #Prefix_Sum
44
// #2023_06_28_Time_692_ms_(100.00%)_Space_66.2_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun maximumWhiteTiles(tiles: Array<IntArray>, carpetLength: Int): Int {
10-
Arrays.sort(tiles, { x: IntArray, y: IntArray -> x[0].compareTo(y[0]) })
8+
tiles.sortWith { x: IntArray, y: IntArray -> x[0].compareTo(y[0]) }
119
var currentCover = Math.min(tiles[0][1] - tiles[0][0] + 1, carpetLength)
1210
var maxCover = currentCover
1311
var head = 1

src/main/kotlin/g2201_2300/s2280_minimum_lines_to_represent_a_line_chart/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ package g2201_2300.s2280_minimum_lines_to_represent_a_line_chart
33
// #Medium #Array #Math #Sorting #Geometry #Number_Theory
44
// #2023_06_28_Time_765_ms_(100.00%)_Space_98.8_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun minimumLines(stockPrices: Array<IntArray>): Int {
108
if (stockPrices.size == 1) {
119
return 0
1210
}
13-
Arrays.sort(stockPrices) { a: IntArray, b: IntArray -> a[0] - b[0] }
11+
stockPrices.sortWith { a: IntArray, b: IntArray -> a[0] - b[0] }
1412
// multiply with 1.0 to make it double and multiply with 100 for making it big so that
1513
// difference won't come out to be very less and after division it become 0.
1614
// failing for one of the case without multiply 100

src/main/kotlin/g2201_2300/s2286_booking_concert_tickets_in_groups/BookMyShow.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package g2201_2300.s2286_booking_concert_tickets_in_groups
44
// #2023_06_28_Time_1292_ms_(100.00%)_Space_98.3_MB_(100.00%)
55

66
import java.util.ArrayDeque
7-
import java.util.Arrays
87
import java.util.Deque
98

109
@Suppress("NAME_SHADOWING")
@@ -35,8 +34,8 @@ class BookMyShow(n: Int, private val m: Int) {
3534
numZerosLeft = IntArray(this.n + 2)
3635
// initialize max and total, for max we firstly set values to m
3736
// segments of size 1 are placed starting from this.n - 1
38-
Arrays.fill(max, this.n - 1, this.n + n - 1, m)
39-
Arrays.fill(total, this.n - 1, this.n + n - 1, m.toLong())
37+
max.fill(this.n - 1, this.n + n - 1, m)
38+
total.fill((this.n - 1).toLong(), this.n + n - 1, m)
4039
// calculate values of max and total for segments based on values of their children
4140
var i = this.n - 2
4241
var i1 = i * 2 + 1

src/main/kotlin/g2401_2500/s2402_meeting_rooms_iii/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@ package g2401_2500.s2402_meeting_rooms_iii
33
// #Hard #Array #Sorting #Heap_Priority_Queue
44
// #2023_07_03_Time_976_ms_(100.00%)_Space_108.7_MB_(66.67%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun mostBooked(n: Int, meetings: Array<IntArray>): Int {
108
val counts = IntArray(n)
119
val endTimes = LongArray(n)
12-
Arrays.sort(meetings) { a: IntArray, b: IntArray -> Integer.compare(a[0], b[0]) }
10+
meetings.sortWith { a: IntArray, b: IntArray -> Integer.compare(a[0], b[0]) }
1311
for (meeting in meetings) {
1412
val id = findRoomId(endTimes, meeting[0])
1513
counts[id]++

src/main/kotlin/g2401_2500/s2463_minimum_total_distance_traveled/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ package g2401_2500.s2463_minimum_total_distance_traveled
33
// #Hard #Array #Dynamic_Programming #Sorting
44
// #2023_07_05_Time_153_ms_(100.00%)_Space_37_MB_(100.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun minimumTotalDistance(robot: List<Int>, f: Array<IntArray>): Long {
108
// sort factories :
119
// 1. move all factories with 0-capacity to the end
1210
// 2. sort everything else by x-position in asc order
13-
Arrays.sort(f) { a: IntArray, b: IntArray -> if (a[1] == 0) 1 else if (b[1] == 0) -1 else a[0] - b[0] }
11+
f.sortWith { a: IntArray, b: IntArray -> if (a[1] == 0) 1 else if (b[1] == 0) -1 else a[0] - b[0] }
1412
// Sort robots by x-position in asc order
1513
// As we don't know the implementation of the List that is passed, it is better to map it to
1614
// an array explicitly

src/main/kotlin/g2501_2600/s2503_maximum_number_of_points_from_grid_queries/Solution.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package g2501_2600.s2503_maximum_number_of_points_from_grid_queries
44
// #2023_07_04_Time_581_ms_(100.00%)_Space_62.6_MB_(100.00%)
55

66
import java.util.ArrayDeque
7-
import java.util.Arrays
87
import java.util.PriorityQueue
98
import java.util.Queue
109

@@ -19,9 +18,9 @@ class Solution {
1918
for (i in queries.indices) {
2019
index[i] = i
2120
}
22-
Arrays.sort(index, { o: Int?, m: Int? -> queries[o!!].compareTo(queries[m!!]) })
21+
index.sortWith { o: Int?, m: Int? -> queries[o!!].compareTo(queries[m!!]) }
2322
val q1: Queue<IntArray> = ArrayDeque()
24-
val q2 = PriorityQueue({ a: IntArray, b: IntArray -> a[2].compareTo(b[2]) })
23+
val q2 = PriorityQueue { a: IntArray, b: IntArray -> a[2].compareTo(b[2]) }
2524
q2.offer(intArrayOf(0, 0, grid[0][0]))
2625
val visited = Array(r) { BooleanArray(c) }
2726
var count = 0

src/main/kotlin/g2501_2600/s2542_maximum_subsequence_score/Solution.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package g2501_2600.s2542_maximum_subsequence_score
33
// #Medium #Array #Sorting #Greedy #Heap_Priority_Queue
44
// #2023_07_04_Time_780_ms_(81.97%)_Space_56.7_MB_(99.45%)
55

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

98
class Solution {
@@ -15,9 +14,8 @@ class Solution {
1514
for (i in 0 until n) {
1615
nums[i] = PairInfo(nums1[i], nums2[i])
1716
}
18-
Arrays.sort(
19-
nums
20-
) { a: PairInfo?, b: PairInfo? ->
17+
18+
nums.sortWith sort@{ a: PairInfo?, b: PairInfo? ->
2119
if (a!!.val2 == b!!.val2) {
2220
return@sort a.val1 - b.val1
2321
}

src/main/kotlin/g2501_2600/s2545_sort_the_students_by_their_kth_score/Solution.kt

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

33
// #Medium #Array #Sorting #Matrix #2023_07_04_Time_442_ms_(100.00%)_Space_53.3_MB_(100.00%)
44

5-
import java.util.Arrays
6-
75
class Solution {
86
fun sortTheStudents(score: Array<IntArray>, k: Int): Array<IntArray> {
9-
Arrays.sort(score) { o1: IntArray, o2: IntArray -> o2[k] - o1[k] }
7+
score.sortWith { o1: IntArray, o2: IntArray -> o2[k] - o1[k] }
108
return score
119
}
1210
}

src/main/kotlin/g2501_2600/s2580_count_ways_to_group_overlapping_ranges/Solution.kt

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

33
// #Medium #Array #Sorting #2023_07_10_Time_669_ms_(100.00%)_Space_122.8_MB_(50.00%)
44

5-
import java.util.Arrays
6-
75
@Suppress("NAME_SHADOWING")
86
class Solution {
97
fun countWays(ranges: Array<IntArray>): Int {
108
var cnt = 1
11-
Arrays.sort(ranges) { a, b -> if (a[0] != b[0]) a[0] - b[0] else a[1] - b[1] }
9+
ranges.sortWith { a, b -> if (a[0] != b[0]) a[0] - b[0] else a[1] - b[1] }
1210
var curr = ranges[0]
1311
for (i in 1 until ranges.size) {
1412
if (ranges[i][1] < curr[0] || ranges[i][0] > curr[1]) {

src/main/kotlin/g2501_2600/s2589_minimum_time_to_complete_all_tasks/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@ package g2501_2600.s2589_minimum_time_to_complete_all_tasks
33
// #Hard #Array #Sorting #Greedy #Binary_Search #Stack
44
// #2023_07_12_Time_422_ms_(100.00%)_Space_58.7_MB_(50.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun findMinimumTime(tasks: Array<IntArray>): Int {
108
var res = 0
119
val arr = BooleanArray(2001)
12-
Arrays.sort(tasks) { a: IntArray, b: IntArray ->
10+
tasks.sortWith { a: IntArray, b: IntArray ->
1311
a[1] - b[1]
1412
}
1513
for (task in tasks) {

src/main/kotlin/g2701_2800/s2719_count_of_integers/Solution.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package g2701_2800.s2719_count_of_integers
22

33
// #Hard #String #Dynamic_Programming #Math #2023_08_02_Time_208_ms_(100.00%)_Space_38_MB_(68.42%)
44

5-
import java.util.Arrays
6-
75
class Solution {
86
private lateinit var dp: Array<Array<Array<IntArray>>>
97
private fun countStrings(i: Int, tight1: Boolean, tight2: Boolean, sum: Int, num1: String, num2: String): Int {
@@ -41,7 +39,7 @@ class Solution {
4139
for (dim1 in dp) {
4240
for (dim2 in dim1) {
4341
for (dim3 in dim2) {
44-
Arrays.fill(dim3, -1)
42+
dim3.fill(-1)
4543
}
4644
}
4745
}

src/main/kotlin/g2701_2800/s2747_count_zero_request_servers/Solution.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@ package g2701_2800.s2747_count_zero_request_servers
33
// #Medium #Array #Hash_Table #Sorting #Sliding_Window
44
// #2023_08_08_Time_991_ms_(100.00%)_Space_109.2_MB_(90.00%)
55

6-
import java.util.Arrays
7-
86
class Solution {
97
fun countServers(n: Int, logs: Array<IntArray>, x: Int, qs: IntArray): IntArray {
108
val m = qs.size
119
val valIdx = Array(m) { IntArray(2) }
1210
for (i in 0 until m) valIdx[i] = intArrayOf(qs[i], i)
13-
Arrays.sort(valIdx) { a: IntArray, b: IntArray ->
11+
valIdx.sortWith { a: IntArray, b: IntArray ->
1412
a[0] - b[0]
1513
}
16-
Arrays.sort(logs) { a: IntArray, b: IntArray ->
14+
logs.sortWith { a: IntArray, b: IntArray ->
1715
a[1] - b[1]
1816
}
1917
var l = 0

0 commit comments

Comments
 (0)