分糖果
糖果(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; }