Class Solution
- java.lang.Object
-
- g2601_2700.s2662_minimum_cost_of_a_path_with_special_roads.Solution
-
public class Solution extends Object
2662 - Minimum Cost of a Path With Special Roads.Medium
You are given an array
startwherestart = [startX, startY]represents your initial position(startX, startY)in a 2D space. You are also given the arraytargetwheretarget = [targetX, targetY]represents your target position(targetX, targetY).The cost of going from a position
(x1, y1)to any other position in the space(x2, y2)is|x2 - x1| + |y2 - y1|.There are also some special roads. You are given a 2D array
specialRoadswherespecialRoads[i] = [x1i, y1i, x2i, y2i, costi]indicates that theithspecial road can take you from(x1i, y1i)to(x2i, y2i)with a cost equal tocosti. You can use each special road any number of times.Return the minimum cost required to go from
(startX, startY)to(targetX, targetY).Example 1:
Input: start = [1,1], target = [4,5], specialRoads = [[1,2,3,3,2],[3,4,4,5,1]]
Output: 5
Explanation: The optimal path from (1,1) to (4,5) is the following:
- (1,1) -> (1,2). This move has a cost of |1 - 1| + |2 - 1| = 1.
- (1,2) -> (3,3). This move uses the first special edge, the cost is 2.
- (3,3) -> (3,4). This move has a cost of |3 - 3| + |4 - 3| = 1.
- (3,4) -> (4,5). This move uses the second special edge, the cost is 1.
So the total cost is 1 + 2 + 1 + 1 = 5.
It can be shown that we cannot achieve a smaller total cost than 5.
Example 2:
Input: start = [3,2], target = [5,7], specialRoads = [[3,2,3,4,4],[3,3,5,5,5],[3,4,5,6,6]]
Output: 7
Explanation: It is optimal to not use any special edges and go directly from the starting to the ending position with a cost |5 - 3| + |7 - 2| = 7.
Constraints:
start.length == target.length == 21 <= startX <= targetX <= 1051 <= startY <= targetY <= 1051 <= specialRoads.length <= 200specialRoads[i].length == 5startX <= x1i, x2i <= targetXstartY <= y1i, y2i <= targetY1 <= costi <= 105
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intminimumCost(int[] start, int[] target, int[][] specialRoads)
-