二进制搜索真的比我的解决方案好吗? (Google Kickstart 2020 B轮)

时间:2020-04-25 03:22:02

标签: python binary-search

所以我指的是:-

Bucket计划乘公共汽车穿越乡村很长的路程。她的旅程包括N条巴士路线,按必须乘坐的顺序从1到N。公交车本身非常快,但不经常行驶。第i条公交路线每隔Xi天运行一次。

更具体地说,她只能在第Xi,2Xi,3Xi等天乘坐第i条巴士。由于公共汽车非常快,她可以在同一天乘多辆公共汽车。

Bucket必须在D天之前完成旅程,但是她想尽可能晚地开始旅程。她最晚可以乘搭第一班车,但仍在D日前完成旅程?

因此,在这一回合结束后,我寻找了其他程序员的POV,几乎他们中的大多数人都使用二进制搜索来解决此问题,但是,我的解决方案确实很基础。

for _ in range(int(input())):
  no_of_buses, no_of_days = list(map(int, input().split()))
  list_of_timing = list(map(int, input().split()))
  temp_test_day=0
  check_no = no_of_days
  ans=[]

  for i in list_of_timing[::-1]:
    div = int(check_no/i)
    ans.append(i*div)
    check_no=(i*div)
  print("Case #"+str(_+1)+": "+str(ans[-1]))

因此,我基本上只是找出了公交车行驶的天数的最高倍(与之相比)。 抱歉,如果我的解释不好,我是编程方面的新手(一两个月),所以我向你们寻求帮助。 有人可以解释我的解决方案比二进制搜索更好还是更坏?

(PS,如果有帮助,两个测试集都接受了我的代码)

谢谢。

OG问题-https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc8/00000000002d83bf

0 个答案:

没有答案