Skip to content

Commit 278ddc4

Browse files
authored
Merge pull request #2425 from t3chkid/main
Adds Kotlin solution for problems 846 and 978
2 parents 1d8e1bf + ecda800 commit 278ddc4

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ If you would like to have collaborator permissions on the repo to merge your own
379379
<sub>[0045 - Jump Game II](https://leetcode.com/problems/jump-game-ii/)</sub> | <sub><div align='center'>[✔️](c%2F0045-jump-game-ii.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0045-jump-game-ii.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0045-jump-game-ii.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0045-jump-game-ii.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0045-jump-game-ii.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0045-jump-game-ii.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0045-jump-game-ii.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0045-jump-game-ii.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0045-jump-game-ii.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0045-jump-game-ii.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0045-jump-game-ii.ts)</div></sub>
380380
<sub>[1871 - Jump Game VII](https://leetcode.com/problems/jump-game-vii/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
381381
<sub>[0134 - Gas Station](https://leetcode.com/problems/gas-station/)</sub> | <sub><div align='center'>[✔️](c%2F0134-gas-station.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0134-gas-station.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0134-gas-station.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0134-gas-station.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0134-gas-station.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0134-gas-station.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0134-gas-station.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0134-gas-station.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0134-gas-station.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0134-gas-station.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0134-gas-station.ts)</div></sub>
382-
<sub>[0846 - Hand of Straights](https://leetcode.com/problems/hand-of-straights/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0846-hand-of-straights.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0846-hand-of-straights.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0846-hand-of-straights.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0846-hand-of-straights.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0846-hand-of-straights.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0846-hand-of-straights.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0846-hand-of-straights.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0846-hand-of-straights.ts)</div></sub>
382+
<sub>[0846 - Hand of Straights](https://leetcode.com/problems/hand-of-straights/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0846-hand-of-straights.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0846-hand-of-straights.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0846-hand-of-straights.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0846-hand-of-straights.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0846-hand-of-straights.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0846-hand-of-straights.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0846-hand-of-straights.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0846-hand-of-straights.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0846-hand-of-straights.ts)</div></sub>
383383
<sub>[1423 - Maximum Points You Can Obtain From Cards](https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F1423-Maximum-Points-You-Can-Obtain-from-Cards.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
384384
<sub>[1899 - Merge Triplets to Form Target Triplet](https://leetcode.com/problems/merge-triplets-to-form-target-triplet/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F1899-merge-triplets-to-form-target-triplet.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F1899-Merge-Triplets-to-Form-Target-Triplet.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F1899-merge-triplets-to-form-target-triplet.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F1899-merge-triplets-to-form-target-triplet.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F1899-merge-triplets-to-form-target-triplet.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F1899-merge-triplets-to-form-target-triplet.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F1899-Merge-Triplets-To-Form-Target-Triplet.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F1899-Merge-Triplets-to-Form-Target-Triplet.ts)</div></sub>
385385
<sub>[0763 - Partition Labels](https://leetcode.com/problems/partition-labels/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0763-partition-labels.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0763-partition-labels.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0763-partition-labels.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0763-partition-labels.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0763-partition-labels.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0763-partition-labels.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0763-partition-labels.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>

kotlin/0846-hand-of-straights.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
fun isNStraightHand(hand: IntArray, groupSize: Int): Boolean {
3+
if (hand.size % groupSize != 0) return false
4+
val countMap = mutableMapOf<Int, Int>()
5+
hand.forEach { countMap[it] = countMap.getOrDefault(it, 0) + 1 }
6+
val minHeap = PriorityQueue(countMap.keys)
7+
8+
while (minHeap.isNotEmpty()) {
9+
val minValue = minHeap.peek()
10+
if (countMap.getValue(minValue) == 0) {
11+
minHeap.remove()
12+
continue
13+
}
14+
// loop through consecutive numbers starting from the "minValue" number
15+
for (consecutiveNumber in minValue until (minValue + groupSize)) {
16+
if (
17+
consecutiveNumber !in countMap.keys ||
18+
countMap.getValue(consecutiveNumber) == 0
19+
) return false
20+
countMap[consecutiveNumber] = countMap.getValue(consecutiveNumber) - 1
21+
}
22+
// if the loop successfully executes without returning, it indicates that
23+
// it was possible to create a group of size [groupSize] with minValue
24+
// as the first element in the group.
25+
}
26+
return true
27+
}
28+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
fun maxTurbulenceSize(arr: IntArray): Int {
3+
if (arr.size == 1) return 1
4+
var previousEqualitySymbol = ' '
5+
var currentSubArraySize = 1
6+
var maxSubArraySize = 1
7+
for (i in 1..arr.lastIndex) {
8+
if (arr[i - 1] > arr[i] && previousEqualitySymbol != '>') {
9+
currentSubArraySize++
10+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
11+
previousEqualitySymbol = '>'
12+
continue
13+
}
14+
if (arr[i - 1] < arr[i] && previousEqualitySymbol != '<') {
15+
currentSubArraySize++
16+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
17+
previousEqualitySymbol = '<'
18+
continue
19+
}
20+
currentSubArraySize = if (arr[i - 1] == arr[i]) 1 else 2
21+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
22+
previousEqualitySymbol = when {
23+
arr[i - 1] < arr[i] -> '<'
24+
arr[i - 1] > arr[i] -> '>'
25+
else -> ' '
26+
}
27+
}
28+
return maxSubArraySize
29+
}
30+
}

0 commit comments

Comments
 (0)