https://leetcode.com/problems/maximum-units-on-a-truck/description/ Easy

Решение

class Solution {
    fun maximumUnits(boxTypes: Array<IntArray>, truckSize: Int): Int {
        val boxes = IntArray(1001)
        var i = 0
        while (i < boxTypes.size) {
            val b = boxTypes[i]
            boxes[b[1]] += b[0]
            i++
        }
        var cap = truckSize
        var res = 0
        var u = 1000
        while (u > 0 && cap > 0) {
            val cnt = boxes[u]
            if (cnt > 0) {
                val take = if (cnt < cap) cnt else cap
                res += take * u
                cap -= take
            }
            u--
        }
        return res
    }
}