1103 Distribute Candies to People
题意:
从左到右发糖果,后面的比前面那个人多有一个糖果,如果发到最后一个人,则重头从左边发糖果,给糖果数目递增,直到发完为止。
关键词:Math
思路:
- 如何回到第一人,再发糖果呢?用i % num_people i++
解答:
var distributeCandies = function(candies, num_people) {
if (!candies || candies == 0) return []; //no candies
let res = new Array(num_people).fill(0); //aovid NaN
let candy = 1; //give first person
let i = 0; //tracking res array
while (candies > 0){
i = i % num_people; //for assign candy from left again
if (candies < candy) res[i] += candies;
else res[i] += candy;
i++;
candies -= candy;
candy++; //increasing candy amount
}
return res;
};