题目
解法:暴力递归
唯一有一点可以优化的是当某个位置第一次出现0的时候,后面可以直接跳过,因为这个位置为0的组合一定在之前已经出现过
class Solution {
public:
int ans = INT_MAX;
void helper(vector<int>& cookies,vector<int>& childs, int ind){
if(ind == cookies.size()) {
ans = min(*max_element(childs.begin(),childs.end()),ans);
return;
}
for(int i=0;i<childs.size();i++){
childs[i] += cookies[ind];
helper(cookies,childs,ind+1);
childs[i] -= cookies[ind];
if(childs[i] == 0) break;
}
}
int distributeCookies(vector<int>& cookies, int k) {
vector<int> childs(k,0);
helper(cookies,childs,0);
return ans;
}
};