Class Solution
-
- All Implemented Interfaces:
public final class Solution
3528 - Unit Conversion I.
Medium
There are
n
types of units indexed from0
ton - 1
. You are given a 2D integer arrayconversions
of lengthn - 1
, where <code>conversionsi = sourceUnit<sub>i</sub>, targetUnit<sub>i</sub>, conversionFactor<sub>i</sub></code>. This indicates that a single unit of type <code>sourceUnit<sub>i</sub></code> is equivalent to <code>conversionFactor<sub>i</sub></code> units of type <code>targetUnit<sub>i</sub></code>.Return an array
baseUnitConversion
of lengthn
, wherebaseUnitConversion[i]
is the number of units of typei
equivalent to a single unit of type 0. Since the answer may be large, return eachbaseUnitConversion[i]
modulo <code>10<sup>9</sup> + 7</code>.Example 1:
Input: conversions = [0,1,2,1,2,3]
Output: 1,2,6
Explanation:
Convert a single unit of type 0 into 2 units of type 1 using
conversions[0]
.Convert a single unit of type 0 into 6 units of type 2 using
conversions[0]
, thenconversions[1]
.
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:
Convert a single unit of type 0 into 2 units of type 1 using
conversions[0]
.Convert a single unit of type 0 into 3 units of type 2 using
conversions[1]
.Convert a single unit of type 0 into 8 units of type 3 using
conversions[0]
, thenconversions[2]
.Convert a single unit of type 0 into 10 units of type 4 using
conversions[0]
, thenconversions[3]
.Convert a single unit of type 0 into 6 units of type 5 using
conversions[1]
, thenconversions[4]
.Convert a single unit of type 0 into 30 units of type 6 using
conversions[0]
,conversions[3]
, thenconversions[5]
.Convert a single unit of type 0 into 24 units of type 7 using
conversions[1]
,conversions[4]
, thenconversions[6]
.
Constraints:
<code>2 <= n <= 10<sup>5</sup></code>
conversions.length == n - 1
<code>0 <= sourceUnit<sub>i</sub>, targetUnit<sub>i</sub>< n</code>
<code>1 <= conversionFactor<sub>i</sub><= 10<sup>9</sup></code>
It is guaranteed that unit 0 can be converted into any other unit through a unique combination of conversions without using any conversions in the opposite direction.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
Modifier and Type Method Description final IntArray
baseUnitConversions(Array<IntArray> conversions)
-
-
Method Detail
-
baseUnitConversions
final IntArray baseUnitConversions(Array<IntArray> conversions)
-
-
-
-