第153周竞赛题
1184.公交站间的距离
一.题目描述
环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。
环线上的公交车都可以按顺时针和逆时针的方向行驶。
返回乘客从出发点** start 到目的地 destination **之间的最短距离。
示例1:
from IPython.display import Image
Image("./data/1.jpg",width=500)
输入:distance = [1,2,3,4], start = 0, destination = 1
输出:1
解释:公交站 0 和 1 之间的距离是 1 或 9,最小值是 1。
示例2:
Image("./data/2.jpg",width=500)
输入:distance = [1,2,3,4], start = 0, destination = 2
输出:3
解释:公交站 0 和 2 之间的距离是 3 或 7,最小值是 3。
示例3:
Image("./data/3.jpg",width=500)
输入:distance = [1,2,3,4], start = 0, destination = 3
输出:4
解释:公交站 0 和 3 之间的距离是 6 或 4,最小值是 4。
提示:
- 1 <= n <= 10^4
- distance.length == n
- 0 <= start, destination < n
- 0 <= distance[i] <= 10^4
二.题目思考
由于路线是一个环路,我们先求路程总和sum.然后从start到destination的距离distance,取两者最小值即可
三.代码
class Solution:
def distanceBetweenBusStops(self,distance,start,destination):
sum=0
length=len(distance)
for i in range(length):
sum+=distance[i]
ret=0
i=start
while i!=destination:
ret+=distance[i]
i=(i+1)%length
return min(ret,sum-ret)
if __name__=="__main__":
solution=Solution()
print(solution.distanceBetweenBusStops([1,2,3,4],0,3))
4
1185.一周中的第几天
一.题目描述
给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。
输入为三个整数:day、month 和 year,分别表示日、月、年。
您返回的结果必须是这几个值中的一个** {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}。**
示例1:
输入:day = 31, month = 8, year = 2019
输出:“Saturday”
示例2:
输入:day = 18, month = 7, year = 1999
输出:“Sunday”
示例3:
输入:day = 15, month = 8, year = 1993
输出:“Sunday”
提示:
- 给出的日期一定是在** 1971 到 2100 **年之间的有效日期。
二.题目描述
三.代码
class Solution:
def isLeap(self, year: int) -> bool:
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return True
else:
return False
def dayOfTheWeek(self, day: int, month: int, year: int) -> str:
ret = 4
for i in range(1971, year):
if self.isLeap(i):
ret += 366
else:
ret += 365
days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in range(1, month):
if self.isLeap(year) and i == 2:
ret += 29
else:
ret += days[i]
ret += day
ans = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
ret = ret % 7
return ans[ret]
if __name__=="__main__":
solution=Solution()
print(solution.dayOfTheWeek(31,8,2019))
Saturday
附件: