码迷,mamicode.com
首页 > 其他好文 > 详细

1184. Distance Between Bus Stops

时间:2021-01-07 12:12:35      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ons   red   ebe   star   div   clock   nta   return   code   

package LeetCode_1184

/**
 * 1184. Distance Between Bus Stops
 * https://leetcode.com/problems/distance-between-bus-stops/
 * 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.
 * */
class Solution {
    /*
    * Time:O(n), Space:O(1)
    * */
    fun distanceBetweenBusStops(distance: IntArray, start: Int, destination: Int): Int {
        var total = 0
        var sum = 0
        var s = start
        var d = destination
        if (s > d) {
            //swap start and destination
            val temp = d
            d = s
            s = temp
        }
        for (i in distance.indices) {
            //calculate distance from start to end
            if (i >= s && i < d) {
                sum += distance[i]
            }
            //calculate total distance
            total += distance[i]
        }
        //the distance of other direction is:total - sum
        return Math.min(total - sum, sum)
    }
}

 

1184. Distance Between Bus Stops

标签:ons   red   ebe   star   div   clock   nta   return   code   

原文地址:https://www.cnblogs.com/johnnyzhao/p/14233113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!