加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

【leetcode】1184. Distance Between Bus Stops

发布时间:2020-12-15 07:47:19 所属栏目:Java 来源:网络整理
导读:题目如下: A bus?has? n ?stops numbered from? 0 ?to? n - 1 ?that form?a circle. We know the distance between all pairs of neighboring stops where? distance[i] ?is the distance between the stops number? i ?and? (i + 1) % n . The bus goes al

题目如下:

A bus?has?n?stops numbered from?0?to?n - 1?that form?a circle. We know the distance between all pairs of neighboring stops where?distance[i]?is the distance between the stops number?i?and?(i + 1) % n.

The bus goes along both directions?i.e. clockwise and counterclockwise.

Return the shortest distance between the given?start?and?destination?stops.

?

Example 1:

Input: distance = [1,2,3,4],start = 0,destination = 1
Output: 1
Explanation: Distance between 0 and 1 is 1 or 9,minimum is 1.

?

Example 2:

Input: distance = [1,destination = 2
Output: 3
Explanation: Distance between 0 and 2 is 3 or 7,minimum is 3.

?

Example 3:

Input: distance = [1,destination = 3
Output: 4
Explanation: Distance between 0 and 3 is 6 or 4,minimum is 4.

?

Constraints:

  • 1 <= n?<= 10^4
  • distance.length == n
  • 0 <= start,destination < n
  • 0 <= distance[i] <= 10^4

解题思路:因为公交车的路线是一个环形,所以A到B的最短路径不是顺时针方向就是逆时针方向,比较哪个距离小即可。

代码如下:

class Solution(object):
    def distanceBetweenBusStops(self,distance,start,destination):
        """
        :type distance: List[int]
        :type start: int
        :type destination: int
        :rtype: int
        """
        val = [0]
        amount = 0
        for i in distance:
            amount += i
            val.append(amount)
        dis = abs(val[destination] - val[start])
        return min(dis,amount-dis)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读