关注
个人理解: 为什么要去list中找target?其实target代表能与sum3相加得到sum/2的值,即判断list是否存在和或值为target的元素。假设存在满足条件的元素,则得:sum=sum3+sum5+c(c为list的元素和)和sum/2=sum3+a 由此可得sum/2=sum5+(c-a),即若能凑出a使得sum/2=sum3+a,则list剩余元素和+sum5必等于sum/2,所以target可以为sum/2-sum3或者sum/2-sum5。递归的理解: 核心在target-list.get(start)。在helper(list,target-list.get(start),start+1)中由于start+1,所以它会因为依次减去list中的元素,直到start == list.size()(即减完最后一个元素),而helper(list,target,start+1)则表示跳过第start个元素进入递归,即target不减第start个元素,所以每次递归都会出现减或者不减第start个元素的情况,因此递归终止时,完成了sum/2-sum3(即target)对list中元素所有可拼凑组合的减法。当start == list.size()递归终止时,如果 target==0,说明存在某种list元素的拼凑组合,使sum/2-sum3减去该组合的和刚好为0,能在list元素中凑出target。
点赞
相关推荐
点赞 评论 收藏
分享
飞屋一号:你也两段实习撒,两人综合一下,万一真有面试官问起来,你就说你俩都一起实习的 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了入行xx岗,我学了__ #
6645次浏览 109人参与
# 你都见过什么样的草台班子? #
8492次浏览 73人参与
# 实习的你做了哪些离谱的工作 #
10193次浏览 123人参与
# 被说“做题家”,你的反应是_____? #
2616次浏览 73人参与
# 简历第一个项目做什么 #
7707次浏览 118人参与
# 找实习记录 #
35693次浏览 557人参与
# 工作压力大,你会干什么? #
14331次浏览 320人参与
# Prompt分享 #
2993次浏览 85人参与
# 如果不上班,你会去做什么 #
7642次浏览 280人参与
# AI让你的思考变深了还是变浅了? #
5284次浏览 143人参与
# 邪修省钱套路 #
7946次浏览 253人参与
# 查收我的offer竞争力报告 #
268838次浏览 1662人参与
# 我的付费上班经历 #
14961次浏览 208人参与
# 机械人,秋招第一次笔试的企业是哪家? #
86321次浏览 621人参与
# 如果让你发明个APP,你会想做什么 #
2288次浏览 54人参与
# 秋招我要惩罚这些公司 #
8636次浏览 36人参与
# 参加哪些竞赛对找工作有帮助? #
8489次浏览 142人参与
# 大城市找工作会更容易吗 #
57087次浏览 377人参与
# 小厂实习有必要去吗 #
78179次浏览 369人参与
# 大厂VS公务员你怎么选 #
78150次浏览 691人参与
查看1道真题和解析