1103.分糖果II
链接:1103.分糖果II
难度:Easy
标签:数学、模拟
简介:返回一个长度为 num_people、元素之和为 candies 的数组,以表示糖果的最终分发情况(即 ans[i] 表示第 i 个小朋友分到的糖果数)。
题解 1 - cpp
- 编辑时间:2022-03-28
- 内存消耗:6.32MB
- 编程语言:cpp
- 解法介绍:模拟。
class Solution {
public:
vector<int> distributeCandies(int candies, int num_people) {
vector<int> ans(num_people,0);
for (int i = 0, cnt = 1; candies > 0; i = (i + 1) % num_people,cnt++) {
ans[i] += min(candies, cnt);
candies -= cnt;
}
return ans;
}
};
题解 2 - python
- 编辑时间:2024-06-03
- 执行用时:37ms
- 内存消耗:16.5MB
- 编程语言:python
- 解法介绍:模拟。
class Solution:
def distributeCandies(self, candies: int, num_people: int) -> List[int]:
res = [0] * num_people
cur = 1
idx = 0
while candies:
v = min(cur, candies)
res[idx] += v
candies -= v
cur += 1
idx = (idx + 1) % num_people
return res