代码随想录算法训练营第25天| 回溯

LeetCode.216 组合总和

def backtrack(res, result, target, start):
    if target <= 0 and len(result) >= k:
        if not target and len(result) == k:
            res.append(list(result))
        return
    for i in range(start, 10):
        result.append(i)
        backtrack(res, result, target-i, i+1)
        result.pop()
res = []
backtrack(res, [], n, 1)
return res

LeetCode.17 电话号码的字母组合

if not digits: return []
phoneMap = {
    "2": "abc",
    "3": "def",
    "4": "ghi",
    "5": "jkl",
    "6": "mno",
    "7": "pqrs",
    "8": "tuv",
    "9": "wxyz",
}
def backtrack(res, result, k):
    if k == len(digits):
        res.append(result)
        return 
    for i in phoneMap[digits[k]]:
        result += i
        backtrack(res, result, k+1)
        result = result[:-1]
res = []
backtrack(res, "", 0)
return res

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值