分糖果

糖果(Distribute Candies)​​ ​题目描述​:将 n 个糖果分给 k 个孩子,每个孩子分到的糖果数形成一个严格递增的序列。若无法满足,返回 -1。 ​示例​: 输入:n = 7, k = 4 输出:[1,2,3,1](总和为7,且严格递增)

void distribute(const int n, const int k, std::vector<int>& vec)
{
    vec.clear();
    if(n <= 0 || k <= 0)
        return;
    const long long minSum = ((k + 1) * k)/2;
    if(n < minSum)
        return;
    
    for(int i = 0; i < k; i++)
    {
        vec.emplace_back(i+1);
    }
  
    int remain = n - minSum;
    vec[k-1] += remain;
}

全部评论

相关推荐

哞客37422655...:兄弟别慌!💪 民办本找实习确实难点,但不是没机会。100+简历才2个面试,可能简历需要优化下: 项目经历写具体点,突出测试用例、bug数量等 技能栏把测试工具/方法论写清楚 可以考虑降低预期,先进小厂积累经验 测试岗相对好进,坚持投!现在才半个月,有人投3个月才上岸的😭 加油,offer在路上了🚀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务