Leetcode 1184. 公交站間的距離
阿新 • • 發佈:2022-05-15
環形公交路線上有 n 個站,按次序從 0 到 n - 1 進行編號。我們已知每一對相鄰公交站之間的距離,distance[i] 表示編號為 i 的車站和編號為 (i + 1) % n 的車站之間的距離。
環線上的公交車都可以按順時針和逆時針的方向行駛。
返回乘客從出發點 start 到目的地 destination 之間的最短距離。
示例 1:
輸入:distance = [1,2,3,4], start = 0, destination = 1
輸出:1
解釋:公交站 0 和 1 之間的距離是 1 或 9,最小值是 1。
示例 2:
輸入:distance = [1,2,3,4], start = 0, destination = 2 輸出:3 解釋:公交站 0 和 2 之間的距離是 3 或 7,最小值是 3。
示例 3:
輸入:distance = [1,2,3,4], start = 0, destination = 3
輸出:4
解釋:公交站 0 和 3 之間的距離是 6 或 4,最小值是 4。
提示:
- 1 <= n <= 10^4
- distance.length == n
- 0 <= start, destination < n
- 0 <= distance[i] <= 10^4
Code:
class Solution { public: int distanceBetweenBusStops(vector<int>& distance, int start, int destination) { int dist=0; int total=0; for(int i=0;i<distance.size();i++) { total+=distance[i];//求取總距離 } if(start<destination) { for(int i=start;i<destination;i++) { dist+=distance[i]; } return min(dist,total-dist); } else { for(int i=start;i<distance.size();i++) { dist+=distance[i]; } for(int i=0;i<destination;i++) { dist+=distance[i]; } return min(dist,total-dist); } return 0; } };