题解 | #牛群喂食#

牛群喂食

https://www.nowcoder.com/practice/591c222d73914c1ba031a660db2ef73f

  • 题目考察的知识点 : 回溯
  • 题目解答方法的文字分析:
  1. 使用回溯法枚举所有可能的组合。具体来说,对于每个数,可以选择不选它、选它一次、选它两次……直到选它的次数达到上限或者不能再选为止。在搜索过程中,每当组合的元素之和等于目标值时,就将该组合加入答案中。
  2. 为了避免重复,每次从当前位置开始向后搜索,而不是从头开始搜索。同时,由于题目要求按升序排序返回结果,因此在搜索之前先对数组进行排序。
  • 本题解析所用的编程语言: 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题的解法思路

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务