算法总结

  • 递归和回溯中的常见问题
    • 1.树形问题
    • 2.什么是回溯
    • 3.排列问题
    • 4.组合问题
    • 5.回溯法解决问题的优化
    • 6.二维平面上的回朔法
    • 7.foodfill算法
    • 8.回朔法是人工智能的基础

递归和回溯中的常见问题

1.树形问题

Leetcode相关题目: 17
(1) 电话号码的字母组合。(LeetCode:17)

2.什么是回溯

Leetcode相关题目: 93、131
(1)给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。(LeetCode:93)
(2)给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。(LeetCode:131)

3.排列问题

Leetcode相关题目: 46、47
(1) 给定一个 没有重复 数字的序列,返回其所有可能的全排列。(LeetCode:46)
(2) 给定一个可包含重复数字的序列,返回所有不重复的全排列。(LeetCode:47)

4.组合问题

Leetcode相关题目: 77
(1)给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合(LeetCode:77)

5.回溯法解决问题的优化

Leetcode相关题目: 77、39、40、216、78、90、401
(1)给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。(LeetCode:77)
(2)给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。(LeetCode:39)
(3)给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。(LeetCode:40)
(4)找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。(LeetCode:216)
(5)给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。(LeetCode:78)
(6)给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。(LeetCode:90)
(7)二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。(LeetCode:401)

6.二维平面上的回朔法

Leetcode相关题目:79
(1)定一个二维网格和一个单词,找出该单词是否存在于网格中。(LeetCode:79)

7.foodfill算法

Leetcode相关题目:200、130、417
(1)给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。(LeetCode:200)
(2)给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。。(LeetCode:130)
(3)给定一个二维的甲板, 请计算其中有多少艘战舰。 战舰用 'X’表示,空位用 '.'表示。 你需要遵守以下规则:
给你一个有效的甲板,仅由战舰或者空位组成。
战舰只能水平或者垂直放置。换句话说,战舰只能由 1xN (1 行, N 列)组成,或者 Nx1 (N 行, 1 列)组成,其中N可以是任意大小。
两艘战舰之间至少有一个水平或垂直的空位分隔 - 即没有相邻的战舰。(LeetCode:417)

8.回朔法是人工智能的基础

Leetcode相关题目:51、52、37
(1)n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。(LeetCode:51)
(2)n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

  • 给定一个整数 n,返回 n 皇后不同的解决方案的数量。(LeetCode:52)
    (3)编写一个程序,通过已填充的空格来解决数独问题。
    一个数独的解法需遵循如下规则:

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。
空白格用 ‘.’ 表示。(LeetCode:37)

leetcode-6_递归和回溯相关推荐

  1. LeetCode算法题14:递归和回溯2

    文章目录 前言 一.全排列II 仿照全排列(n 叉树) 剪枝(去掉重复的结果) 二.组合总和 一.初始解法(n 叉树): 1,采用 Set 去重 2,在递归搜索的时候去重(推荐解法) 初始解法的遍历过 ...

  2. Leetcode 40组合总数(回溯)Ⅱ41缺失的第一个正数42接雨水

    维护公众号:bigsai ,回复进群加入打卡,回复bigsai分享一些学习资源! 上周第一次 LeetCode 36有效的数独&37解数独(八皇后问题) 上周第二次 LeetCode 38外观 ...

  3. 递归和回溯相关面试算法总结

    文章目录 递归面试算法总结 1. LeetCode 剑指 Offer 07 : 重建二叉树 2. LeetCode 687 : 最长同值路径 3. LeetCode 面试题 08.06 : 汉诺塔问题 ...

  4. 【C++】【学习笔记】【递归与回溯问题详解与例题】排列问题;组合问题;二维平面回溯;flood fill问题;搜索问题(八皇后);

    目录 七.递归和回溯 1.回溯 2.回溯应用 - 排列问题 2.回溯应用 - 组合问题 3.回溯应用 - 二维平面 4.回溯应用 - floodfill算法 问题 4.回溯应用 - 搜索问题 - 八皇 ...

  5. 「leetcode」最强回溯算法总结篇!历时21天、画了20张树形结构图、14道精选回溯题目精讲

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  6. 递归--基于回溯和递归的八皇后问题解法

    八皇后问题是在8*8的棋盘上放置8枚皇后,使得棋盘中每个纵向.横向.左上至右下斜向.右上至左下斜向均只有一枚皇后.八皇后的一个可行解如图所示:                             ...

  7. Pythonic:递归、回溯等5种方法生成不重复数字整数

    问题描述:从0到9这10个数字任选3个不重复的数字,能构成哪些三位数? So easy!看到这样的问题,很多人会写出类似(注意,只是类似,我为了使得本文几个函数具有相同的调用形式,给demo1和dem ...

  8. 20210325:力扣递归,回溯类型题目合集

    力扣递归,回溯类型题目合集 题目 思路与算法 代码实现 写在最后 题目 子集 2. 90. 子集 II 3. 40. 组合总和 II 4. 22. 括号生成 思路与算法 子集:注释的很详细,递归生成子 ...

  9. 【算法】递归|迷宫回溯问题|八皇后问题

    [算法]递归|迷宫回溯问题|八皇后问题   迷宫回溯问题,要用动态的眼光来看待这个递归算法. package com.serein.recursion;/*** @author baichuan* @ ...

最新文章

  1. 自学python哪本书比较好-自学Python一年,看了几十本书,我发现了这些捷径!
  2. Python安装、配置图文详解
  3. 『转载』|收藏|一张看懂AI知识体系
  4. unix 网络编程卷2 第43页 管道:open竟然会阻塞?
  5. f450四轴使用技巧
  6. Android系统联系人全特效实现(下),字母表快速滚动
  7. 扇贝有道180911每日一句
  8. 手机安装W ndows7镜像,Windows7专业版
  9. [安全]在Windows日志里发现入侵痕迹(转载)
  10. 新版二开cp盲盒小纸条月老小程序源码【源码好优多】
  11. 基于显著性检验分析两个样本分布相似度及Python实现—— t检验、拟合优度检验、KS检验、Wilcoxon符号秩检验、H检验、Mann-Whitney秩检验、P值的意义、API汇总
  12. 【CSS】画一个扇形
  13. win7 使用自带无线网卡分享无线网络
  14. JavaScript - 语言提高
  15. 一些特殊字符,由于编码问题显示不出来
  16. HashMap源码逐行分析
  17. Python学习-爬虫入门知识点整理
  18. 变电站机器人的控制部分
  19. 计算机学院宋威教授,北方工业大学计算机科学与技术研究生导师介绍:宋威
  20. java支持库 易语言_Java支持库|简易语言源网络|易语言资源网| e5a5x

热门文章

  1. 营改增后计算机维修费税率,软件行业的维修费税率是多少?
  2. python照片转彩色手绘_用PS把女生照片转成炫彩渐变手绘效果
  3. 写给所有程序员_起个好名字是成功的一半
  4. 做题中遇到的各种密码整理记录
  5. 苹果CMSv10模板带后台和迅雷下载的侧栏样式
  6. solidworls视图与模型及绘图操作快捷方式
  7. bpmnjs activiti 添加定时事件timeDate,timeDuration,timeCycle
  8. oracle 在中国的合作伙伴名单(一)
  9. 百度统计在项目中的使用
  10. 双评价-土地资源评价流程