题解 | #牛群喂食#
牛群喂食
https://www.nowcoder.com/practice/591c222d73914c1ba031a660db2ef73f
- 题目考察的知识点 : 回溯
- 题目解答方法的文字分析:
- 使用回溯法枚举所有可能的组合。具体来说,对于每个数,可以选择不选它、选它一次、选它两次……直到选它的次数达到上限或者不能再选为止。在搜索过程中,每当组合的元素之和等于目标值时,就将该组合加入答案中。
- 为了避免重复,每次从当前位置开始向后搜索,而不是从头开始搜索。同时,由于题目要求按升序排序返回结果,因此在搜索之前先对数组进行排序。
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param candidates int整型一维数组 # @param target int整型 # @return int整型二维数组 # class Solution: def cowCombinationSum(self , candidates: List[int], target: int) -> List[List[int]]: res = [] path = [] candidates.sort() def backtrack(start: int, target: int) -> None: if target == 0: res.append(path[:]) return for i in range(start, len(candidates)): if candidates[i] > target: break path.append(candidates[i]) backtrack(i, target - candidates[i]) path.pop() backtrack(0, target) return res
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路