美文网首页
1103.分糖果 II

1103.分糖果 II

作者: 最尾一名 | 来源:发表于2020-03-05 10:15 被阅读0次

原题

https://leetcode-cn.com/problems/distribute-candies-to-people/

解题思路

可等价为:等差数列求和,再将剩余的数分发到合理的位置。

先根据 S(n) = n(n+1)/2 这一等差数列的求和公式,求解出等差数列的项数 n

再用项数处以人数,得到分发的轮数:round = n / num_people

在 round 轮内,每个人得到的糖果数为 i+1 + (i+1+num_people) + ... + (i+1+(round-1)*num_people) = (2(i+1)+(round-1)num_people)round/2

此时,还剩下 n - num_peopleround 人处在等差数列中,依次加上 i+1+roundnum_people

最后,还剩下 candies - n(n+1)/2 个糖果,全部分给下一个人。

代码

/**
 * @param {number} candies
 * @param {number} num_people
 * @return {number[]}
 */
var distributeCandies = function(candies, num_people) {
    const n = Math.floor((Math.sqrt(8 * candies + 1) - 1) / 2);
    const round = Math.floor(n / num_people), result = new Array();
    for (let i = 0; i < num_people; ++i) {
        result.push((2 * (i + 1) + (round - 1) * num_people) * round / 2);
    }
    const restPeople = n - round * num_people;
    for (i = 0; i < restPeople; ++i) {
        result[i] += (i + 1 + round * num_people);
    }
    const remainingCandies = candies - (n * (n + 1)) / 2;
    result[restPeople] += remainingCandies;
    return result;
};

复杂度分析

  • 时间复杂度 O(num_people)
  • 空间复杂度 O(num_people)

相关文章

  • 1103.分糖果 II

    原题 https://leetcode-cn.com/problems/distribute-candies-to...

  • leetcode-1103-分糖果

    1103. 分糖果 II 方法1--直接遍历 思想:首先定义一个动态数组,把其中元素全部赋0。然后就是循环了,如果...

  • LeetCode 1103. 分糖果 II Distribute

    【题目描述】排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people...

  • 1103.分糖果

    解题思路 解法一:暴力法 对小朋友们进行遍历,每次都发小朋友们应得数量的糖,直到剩下的糖不足以分发应得数量,就直接...

  • 2021-03-07 1103. 分糖果 II

    题目地址 https://leetcode-cn.com/problems/distribute-candies-...

  • LeetCode 1103. 分糖果

    排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people个小朋友。...

  • 分糖果 II

    排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友...

  • 分糖果 II

    题目: 题目的理解: 从举例中明白根据n * (n + 1) / 2 然后和candies比较,获取一共可以分多少...

  • 1103-分糖果II

    分糖果II 题目 排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_pe...

  • LeetCode刷题-分糖果II

    前言说明 算法学习,日常刷题记录。 题目连接 分糖果II[https://leetcode-cn.com/prob...

网友评论

      本文标题:1103.分糖果 II

      本文链接:https://www.haomeiwen.com/subject/dejtrhtx.html