Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    1928 - Minimum Cost to Reach Destination in Time.

    Hard

    There is a country of n cities numbered from 0 to n - 1 where all the cities are connected by bi-directional roads. The roads are represented as a 2D integer array edges where <code>edgesi = x<sub>i</sub>, y<sub>i</sub>, time<sub>i</sub></code> denotes a road between cities <code>x<sub>i</sub></code> and <code>y<sub>i</sub></code> that takes <code>time<sub>i</sub></code> minutes to travel. There may be multiple roads of differing travel times connecting the same two cities, but no road connects a city to itself.

    Each time you pass through a city, you must pay a passing fee. This is represented as a 0-indexed integer array passingFees of length n where passingFees[j] is the amount of dollars you must pay when you pass through city j.

    In the beginning, you are at city 0 and want to reach city n - 1 in maxTime minutes or less. The cost of your journey is the summation of passing fees for each city that you passed through at some moment of your journey ( including the source and destination cities).

    Given maxTime, edges, and passingFees, return the minimum cost to complete your journey, or -1 if you cannot complete it within maxTime minutes.

    Example 1:

    Input: maxTime = 30, edges = [0,1,10,1,2,10,2,5,10,0,3,1,3,4,10,4,5,15], passingFees = 5,1,2,20,20,3

    Output: 11

    Explanation: The path to take is 0 -> 1 -> 2 -> 5, which takes 30 minutes and has $11 worth of passing fees.

    Example 2:

    Input: maxTime = 29, edges = [0,1,10,1,2,10,2,5,10,0,3,1,3,4,10,4,5,15], passingFees = 5,1,2,20,20,3

    Output: 48

    Explanation: The path to take is 0 -> 3 -> 4 -> 5, which takes 26 minutes and has $48 worth of passing fees. You cannot take path 0 -> 1 -> 2 -> 5 since it would take too long.

    Example 3:

    Input: maxTime = 25, edges = [0,1,10,1,2,10,2,5,10,0,3,1,3,4,10,4,5,15], passingFees = 5,1,2,20,20,3

    Output: -1

    Explanation: There is no way to reach city 5 from city 0 within 25 minutes.

    Constraints:

    • 1 &lt;= maxTime &lt;= 1000

    • n == passingFees.length

    • 2 &lt;= n &lt;= 1000

    • n - 1 &lt;= edges.length &lt;= 1000

    • <code>0 <= x<sub>i</sub>, y<sub>i</sub><= n - 1</code>

    • <code>1 <= time<sub>i</sub><= 1000</code>

    • 1 &lt;= passingFees[j] &lt;= 1000

    • The graph may contain multiple edges between two nodes.

    • The graph does not contain self loops.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Integer minCost(Integer maxTime, Array<IntArray> edges, IntArray passingFees)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait