0305-分糖果
Posted nick17t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0305-分糖果相关的知识,希望对你有一定的参考价值。
分糖果
题目卡片
时间: 2020-03-05
题目链接:
Tag:math
思路
题目挺简单的,按着题目描述来可暴力求解。
"对小朋友们进行遍历,每次都发小朋友们应得数量的糖,直到剩下的糖不足以分发应得数量,就直接给最后那位倒霉孩子。"
代码
class Solution {
public int[] distributeCandies(int candies, int num_people) {
int i = 0;
int []ans = new int[num_people];
/* 1.
while(candies!=0){
int n = i+1;
if(n<=candies){
ans[i%num_people] += n;
candies -= n;
}
else{
ans[i%num_people] += candies;
break;
}
i++;
*/
while(candies!=0){
int n = i+1;
ans[i % num_people] += Math.min(candies, n);
candies -= Math.min(candies,n);
}
/*
* 取candies(现有糖果数量)和n(按规则应获得的需要糖果数量)中的最小值,
* 给第 i%num_people (轮到的第几位小朋友),
* += 累加每一轮所发的新糖果,
* min的作用是当糖果不够用时,全送给那个小朋友,
* 与此同时,candies数量减去已送出的数量。
*/
}
return ans;
}
}
扩展
这个的标签是Math,所以肯定是有相关的数学公式能帮忙省事儿。
leetCode中@QuantumDriver给出详细解释,不在此赘述。
以上是关于0305-分糖果的主要内容,如果未能解决你的问题,请参考以下文章