代码随想录算法训练营第十六天 | Javascript | 力扣Leetcode | 回溯 | 77. 组合、216. 组合综合 III、17. 电话号码的字母组合

目录

前言

简介

题目链接:77. 组合

题目链接:216. 组合总和 3

题目链接:17. 电话号码的字母组合


前言

踏平坎坷成大道,斗罢艰险又出发!

自律的尽头是自控,自控的尽头是硬控

愿道友们披荆斩棘,终能得偿所愿。

简介

本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。

今天是个人的代码随想录算法硬控自己第16天,开启回溯。

题目链接:77. 组合

犯了一个错误,在js里,把一个数组push到另一个数组里的时候,要用arr2.push([...arr1])而不能arr2.push(arr1),前者是拷贝副本,后者只是拷贝了引用,拷贝引用的后果就是arr1变化的时候拷贝进去的arr2里的arr1也在变。

题目链接:216. 组合总和 3

这题注意剪枝,这里剪枝的原理是如果当前遍历的元素已经大于需要的目标总和也就是n了,那么直接return,因为已经没有意义了。

题目链接:17. 电话号码的字母组合

这是组合问题里的小变形,不再是一个集合里去重求组合,而是从两个集合里分别取元素,因此回溯函数不再传进去startIndex,而是index,index这里表示当前到了哪个电话号码,比如digits是'23', index为0就是当前处理的是'2'也就是对应着的'abc'。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值