zoukankan      html  css  js  c++  java
  • 1184. Distance Between Bus Stops

    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)
        }
    }
  • 相关阅读:
    [codevs]失恋28天题目系列
    [NOIP1998]最大数
    [codevs4247]奇特的生物
    [codevs1380]没有上司的舞会
    [codevs2152]滑雪
    [codevs2171]棋盘覆盖
    [codevs2170]悠闲的漫步
    [codevs1557]热浪
    [codevs1554]最佳课题选择
    nodejs建站+github page 建站问题总结
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14233113.html
Copyright © 2011-2022 走看看