关注
第一题就是组合问题,先求出数组总和的一半target 再dfs看有没有最接近target的组合,有就更新。
void two_can(vector<int>& nums, vector<bool>& used,int start, int sum,double target,vector<int>& track,int& ans)
{
if(sum > ans) return; //超过之前较优解ans,剪枝
if(sum >= target) //满足 >= target 且小于之前较优解 ans,进来更新较优解ans
{
ans = sum; //最后ans就是答案
res.push_back(track);
return;
}
for(int i = start; i <nums.size();i++)
{
if(i > 0 && nums[i] == nums[i-1] && !used[i-1]) continue;//跳过重复元素
sum += nums[i];
track.push_back(nums[i]);
used[i] = true;
two_can(nums,used,i+1,sum,target,track,ans);
used[i] = false;
track.pop_back();
sum -= nums[i];
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
03-11 14:23
南阳理工学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试被问到不会的问题,你怎么应对? #
21379次浏览 525人参与
# 学历VS实习,哪个更重要? #
890次浏览 31人参与
# 厦门银行科技岗值不值得投 #
15287次浏览 352人参与
# 你见过哪些招聘隐形歧视? #
21916次浏览 186人参与
# 设计人的面试记录 #
205056次浏览 1630人参与
# 你觉得大几开始实习最合适? #
24846次浏览 246人参与
# 招商银行数字金融训练营 #
106197次浏览 916人参与
# uu们,春招你还来吗? #
59956次浏览 642人参与
# 面试中,你被问过哪些奇葩问题? #
94720次浏览 1180人参与
# 哔哩哔哩笔试 #
34739次浏览 140人参与
# 影石Insta360求职进展汇总 #
184013次浏览 1377人参与
# 国企/银行/研究所公司爆料 #
203406次浏览 913人参与
# 你都用vibe coding做过什么? #
18393次浏览 730人参与
# 供应链/物流校招攻略 #
12401次浏览 218人参与
# 虹软科技求职进展汇总 #
16629次浏览 138人参与
# AI Coding实战技巧 #
13134次浏览 278人参与
# 机械人还在等华为开奖吗? #
325223次浏览 1599人参与
# 做完笔试后你收到面试了吗? #
24072次浏览 210人参与
# 恒生电子笔试 #
19984次浏览 156人参与
# 你现在一天AI几次? #
11235次浏览 118人参与
# Vibe Coding 会干掉初级岗位吗? #
20100次浏览 211人参与
# 如果人生可以debug你会改哪一行? #
9873次浏览 140人参与
查看5道真题和解析