题目来自:
https://leetcode-cn.com/problems/distribute-candies-to-people/
解题思路
1、暴力法
循环给每个小朋友发糖,直至糖发完。
class Solution:
def distributeCandies(self, candies: int, num_people: int) -> List[int]:
array = [0]*num_people #待返回的数组
candy = 1 #初始化每个小盆友待发糖数,第一个为1
while candies > 0 :
index = candy % num_people - 1 #数组索引
array[index] += min(candy,candies)
candies = candies - candy
candy += 1
return array
小朋友数量增加对步数没有影响,
看糖数增加对步数的影响
假设需要s步分完k1个糖
1 + 2 + . . . + s = k 1 1+2+...+s = k_1 1+2+...+s=k1
s ( s + 1 ) 2 = k 1 \frac{s(s+1)}{2}=k_1 2s(s+1)=k1
看作
s 2 ≈ 2 k 1 s^2\approx2k_1 s