leetcode_1184

淳属虚构 · · 81 次点击 · · 开始浏览    

Golang:

思路:这题属于简单题,简单题的意义就是比谁的方法效率更高。这道题里,distance数组是一定会被访问一整遍的,那么如何只用一次遍历就得到结果呢?简单的说,当我们找到点i和点j顺时针方向的距离后,那么数组中剩下的数总和就是点i到点j逆时针方向的距离之和了。我们从这两个和里面返回小的那个即可。

代码如下:

func distanceBetweenBusStops(distance []int, start int, destination int) int {
    if start==destination {
        return 0
    }
    length1,length2:=0,0
    if start>destination{
        start,destination=destination,start
    }
    for i:=0; i<len(distance); i++ {
        if i>=start&&i<destination{
            length1+=distance[i]
        }else {
            length2+=distance[i]
        }
    }
    if length1>length2 {
        return length2
    }else {
        return length1
    }
}

本文来自:简书

感谢作者:淳属虚构

查看原文:leetcode_1184

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:muxilin131420 备注:入群;或加QQ群:977810755

81 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传