关于 leetcode 的的 1103 题目
时间: 2020-08-18来源:V2EX
前景提要
我的解法 def distributeCandies(candies: int, num_people: int): ans = [0] * num_people i = 1 while 1: person = (i % num_people) - 1 ans[person] += i candies -= i if (i + i) >= candies: print("i+1:{} candies:{}".format(i+1, candies)) person = ((i + 1) % num_people) - 1 ans[person] += candies break else: i += 1 return ans res = distributeCandies(7, 4) print(res) 最后出来的结果: i+1:3 candies:4 [1, 2, 4, 0]
答案是错误的, 为什么在 i = 2 的时候还是会进入到 if 的判断里面去, 我已经打印出来了, i+1 = 3 candies=4 但是 if (i+1) >= candies 还是为 True ,为什么呢
附上正确答案 def distributeCandies(candies: int, num_people: int): ans = [0] * num_people i = 1 while 1: person = (i % num_people) - 1 ans[person] += i candies -= i i += 1 if i >= candies: print("i:{} candies:{}".format(i, candies)) person = i % num_people - 1 ans[person] += candies break return ans res = distributeCandies(7, 4) print(res)

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行