LeetCode in Kotlin

3528. Unit Conversion I

Medium

There are n types of units indexed from 0 to n - 1. You are given a 2D integer array conversions of length n - 1, where conversions[i] = [sourceUniti, targetUniti, conversionFactori]. This indicates that a single unit of type sourceUniti is equivalent to conversionFactori units of type targetUniti.

Return an array baseUnitConversion of length n, where baseUnitConversion[i] is the number of units of type i equivalent to a single unit of type 0. Since the answer may be large, return each baseUnitConversion[i] modulo 109 + 7.

Example 1:

Input: conversions = [[0,1,2],[1,2,3]]

Output: [1,2,6]

Explanation:

Example 2:

Input: conversions = [[0,1,2],[0,2,3],[1,3,4],[1,4,5],[2,5,2],[4,6,3],[5,7,4]]

Output: [1,2,3,8,10,6,30,24]

Explanation:

Constraints:

Solution

class Solution {
    fun baseUnitConversions(conversions: Array<IntArray>): IntArray {
        val arr = IntArray(conversions.size + 1)
        arr[0] = 1
        for (conversion in conversions) {
            val `val` = (arr[conversion[0]].toLong() * conversion[2]) % 1000000007
            arr[conversion[1]] = `val`.toInt()
        }
        return arr
    }
}