1103.分糖果II
链接:1103.分糖果II
难度:Easy
标签:数学、模拟
简介:返回一个长度为 num_people、元素之和为 candies 的数组,以表示糖果的最终分发情况(即 ans[i] 表示第 i 个小朋友分到的糖果数)。
题解 1 - 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
题解 2 - 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;
    }
};