回溯算法大家是不是已经快忘了,还记得组合问题应该怎么求了么?哈哈哈
回溯算法其实就是暴力搜索,既然是暴力搜索为什么要非要用回溯呢?因为一些问题能暴力搜索出就不错了,找不出更好的办法。
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
如果用for循环嵌套一层一层去解决这个问题,如果n为100,k为50呢,那就50层for循环,此时就发现单纯的暴力不可以了。
回溯算法就登场了。
回溯算法中的用递归来做for循环层叠嵌套(可以理解是开k层for循环)
每一次的递归中嵌套一个for循环,那么递归就可以解决多层嵌套循环的问题了。
我在文章回溯算法:求组合问题! 中,同时还给出了回溯三部曲。按照这个方法来,就发现回溯算法其实并不难咯。
题目链接:https://leetcode-cn.com/problems/combinations/
回溯算法模板如下:
- void backtracking(参数) {
- if (终止条件) {
- 存放结果;
- return;
- }
- for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
- 处理节点;
- backtracking(路径,选择列表); // 递归
- 回溯,撤销处理结果
- }
- }
本文转载自微信公众号「代码随想录」,可以通过以下二维码关注。转载本文请联系代码随想录公众号。
怎么才知道 域名 值多少钱?如果是自己去 域名注册 商注册一个普通域名,价格基...
两年前,阿里巴巴与四川大学、美国加州大学伯克利分校、中国国家图书馆、浙江图...
最近几年我们国家在大力推进 企业上云 计划,为了让企业上云更好的服务于企业,...
在国内家电市场消费升级热潮之下,很多人购买家电时,更青睐能提升生活品质的高...
1月28日,亚马逊云服务(AWS)正式宣布,由 AWS Graviton2 处理器提供支持的 Ama...
是不是还在膜拜抖音大神熟练的EXCEL万能一秒钟?是不是还在死记硬背各种EXCEL快捷...
数据分析工作中,免不了与SQL数据库打交道,尤其是对库表的使用,所以如何对库表...
TOP云 (west.cn)4月8日消息,近日外媒披露了NameJet/Snapnames平台在4月份的 ...
“在客户面前产品架构师就像特种兵的角色,直面一线战况,快速做出决策并且把明...
知道了 域名 怎么查备案号?可以直接登录工信部的备案管理系统(https://beian.m...