- 题目描述
- 解题思路
- 执行结果
leetcode 1184. 公交站间的距离.
题目描述
-
公交站间的距离
环形公交路线上有 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
解题思路
法1
模拟:
-
分别计算顺时针与逆时针的距离
-
比较距离的大小
-
返回距离最小的值
-
时间复杂度(O(n))
-
空间复杂度(O(1))
执行结果
法1
func distanceBetweenBusStops(distance []int, start int, destination int) int {
// 顺时针情况下从start到destination的距离
forward := 0
for i := start; i != destination; i = (i + 1) % len(distance) {
forward += distance[i]
}
// 逆时针情况下从start到destination的距离
backward := 0
for i := destination; i != start; i = (i + 1) % len(distance) {
backward += distance[i]
}
// 取较小值作为答案
if forward
return forward
}
return backward
}
执行结果: 通过 显示详情 查看示例代码 添加备注
执行用时: 4 ms , 在所有 Go 提交中击败了 52.00% 的用户 内存消耗: 2.6 MB , 在所有 Go 提交中击败了 80.00% 的用户 通过测试用例: 37 / 37 炫耀一下:
本文由 mdnice 多平台发布
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
An image smoother is a filter of the size 3 x 3 that can be applied to each cell of an image by rounding down the average of the c…