分糖果
糖果(Distribute Candies)?? ?題目描述?:將 n 個糖果分給 k 個孩子,每個孩子分到的糖果數(shù)形成一個嚴格遞增的序列。若無法滿足,返回 -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; }