滴滴9.8后端Python代码

第一题

二分答案,即二分所需要的天数

def solve():
  n, a, b = map(int, input().split())
  c = list(map(int, input().split()))
  l, r = -1, 1 << 64
  def check(c, mid):
	temp = c.copy()
	res = 0
	for i in range(n):
	  temp[i] *= mid
	  res += temp[i] // b
	return res < a
  while l < r - 1:
	mid = (l + r) >> 1
	if not check(c, mid):
	  r = mid
	else:
	  l = mid
  print(l + 1)



注意一下二分的上界需要设为1e18以上,否则会只过82或91

第二题

拿题感觉是Trie或者字符串哈希,可惜两个我都只会板子并且不会手写(字符串苦手,以前字符串都是队友负责的)

Python纯暴力拿了27,82分做法站内有人发了,原来i in s比s.find(i)慢那么多...然后换Cpp一时间又忘了字符串操作了

#我的求职思考#
全部评论
跪求更新一二面问的问题
点赞 回复 分享
发布于 2023-09-11 16:49 福建

相关推荐

点赞 评论 收藏
分享
2 2 评论
分享
牛客网
牛客企业服务