前言
每天和你一起刷 LeetCode 每日一题~
LeetCode 启动!
题目:公交站间的距离
代码与解题思路
func distanceBetweenBusStops(distance []int, start int, destination int) int {
// 首先让 start > destination, 这两个谁大对结果没有影响,但是对做题手感有影响
if start > destination {
start, destination = destination, start
}
// 核心思路就在于,题目给出的是一个:环形公交路线
// 从一个起点到终点,正着走完,剩下没走过的路就是反着走的路
// 也就是我们直接求正着走的路,然后用整条路的路程 sum-sum1 就能得出反着走的路
// 最后求他们的:最短距离,即可
sum, sum1 := 0, 0
for i, v := range distance {
sum += v
if i >= start && i < destination {
sum1 += v
}
}
return min(sum-sum1, sum1)
}
核心思路如注释,题目给的是一个环形数组,正着遍历和反着遍历的和就是整个数组的 sum,所以只需要求出一个方向的和以及路程总和,就能知道另一个方向的和了。
视频实况
【【LeetCode】每日一题 2024_9_16 公交站间的距离(模拟)】
每天进步一点点
可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。