mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-09 15:59:06 +01:00
38 lines
933 B
Kotlin
38 lines
933 B
Kotlin
|
class Solution {
|
||
|
private fun getFrequencies(nums: IntArray): MutableMap<Int, Int> {
|
||
|
val freqs = mutableMapOf<Int, Int>()
|
||
|
|
||
|
nums.forEach {
|
||
|
freqs[it] = 1 + freqs.getOrDefault(it, 0)
|
||
|
}
|
||
|
|
||
|
return freqs
|
||
|
}
|
||
|
|
||
|
fun isPossible(nums: IntArray): Boolean {
|
||
|
val frequencies = getFrequencies(nums)
|
||
|
val sortedNumbers = frequencies.keys.toList().sorted()
|
||
|
|
||
|
sortedNumbers.forEach {
|
||
|
while (frequencies[it]!! > 0) {
|
||
|
var last = 0
|
||
|
var j = it
|
||
|
var k = 0
|
||
|
|
||
|
while (frequencies.getOrDefault(j, 0) >= last) {
|
||
|
last = frequencies[j]!!
|
||
|
frequencies[j] = frequencies[j]!! - 1
|
||
|
|
||
|
j++
|
||
|
k++
|
||
|
}
|
||
|
if (k < 3) {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return true
|
||
|
}
|
||
|
}
|