40. 组合总和 II

昨天那道题的变形版
class Solution:
def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:
def dfs(pos: int, rest: int):
nonlocal sequence
if rest == 0:
ans.append(sequence[:])
return
if pos == len(freq) or rest < freq[pos][0]:
return
dfs(pos + 1, rest)
most = min(rest // freq[pos][0], freq[pos][1])
for i in range(1, most + 1):
sequence.append(freq[pos][0])
dfs(pos + 1, rest - i * freq[pos][0])
sequence = sequence[:-most]
freq = sorted(collections.Counter(candidates).items())
ans = list()
sequence = list()
dfs(0, target)
return ans
今天计网出成绩了,老师给了93分,排第6,最高分95(其实我觉得自己差不多能97.98来着 ),可能是自己那里写错了吧。
挺感谢这个老师的(怕乱说话引起是非,因为用“他”来代替这位可爱的老师),他本来是我通信原理的老师,考通信原理前答疑的时候我搬了个凳子在他办公桌旁边问了他1个多小时的问题,老师很耐心的一步一步给我讲。
今年其实他不是我的任课老师(但是由于种种原因,在这里涉及到一些感觉说出来不太好的事情,所以就不说了 ),然后他一个人差不多负责整个系的这门课程,所以我有问题基本上都去问这个老师,而且他很耐心的给我讲,在做实验的时候还帮我改代码,今年遇到的老师真的都特别好,可能是因为疫情原因,老师也很照顾我们这些学生,给了很多帮助,其实他们也付出了更多的课余时间来帮我们解决问题,感恩!
作者分享了在计网课程中获得高分的经历,并对一道名为'组合总和II'的算法题目进行了探讨,该题为昨天题目的变形版,通过递归深度优先搜索实现。
&spm=1001.2101.3001.5002&articleId=108521711&d=1&t=3&u=28471636c8214132a88e85d079dfb214)
374

被折叠的 条评论
为什么被折叠?



