题目链接 : https://leetcode cn.com/problems/subsets/ 题目描述: 给定一组 不含重复元素 的整数数组 nums ,返回该数组所有可能的子集(幂集)。 说明: 解集不能包含重复的子集。 示例: 思路: 思路一:库函数 思路二:迭代 思路三:递归(回溯算法) ...
分类:
其他好文 时间:
2019-06-01 19:39:41
阅读次数:
85
Given a collection of distinct integers, return all possible permutations. Example: 整体程序花费时间较多,remove处消耗太多时间, 超过24%左右 改良版: 这个每次递归会缩小剩下可用数字范围,不需要维护数字使用 ...
分类:
编程语言 时间:
2019-06-01 19:24:23
阅读次数:
104
题目链接 : https://leetcode cn.com/problems/combinations/ 题目描述: 给定两个整数 n 和 k ,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 思路: 思路一: 库函数 思路二: 回溯算法 代码: 思路二 java "46. 全排列" ...
分类:
其他好文 时间:
2019-06-01 19:22:56
阅读次数:
90
八皇后问题是学习回溯算法时不得不提的一个问题,用回溯算法解决该问题逻辑比较简单。 下面用java版的回溯算法来解决八皇后问题。 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意 ...
分类:
其他好文 时间:
2019-05-31 21:31:47
阅读次数:
105
八皇后问题就是一个典型的全排列问题了,这个在有一篇博客已经写过了,但是今天想在这里对于排列问题来一个总结。 排列问题主要涉及到以下几个方面: 1.不带重复数的全排列 2.带重复数的全排列 3.有限个数的全排列(例如从n个数里面选择m个数,m<n) 现在就以上几个方面把代码给大家,能理解则理解,不能理 ...
分类:
编程语言 时间:
2019-04-22 19:27:10
阅读次数:
181
$ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $强连通分量与拓扑排序 拓扑排序 $ \ \ \ \ \ \ $对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈ ...
分类:
编程语言 时间:
2019-04-09 18:31:39
阅读次数:
158
之前已经学习过回溯法的一些问题,从这篇文章开始,继续深入学习一下回溯法以及其他经典问题。 回溯法有通用的解题法之称。用它可以系统的搜索一个问题的所有解或任一解,回溯法是一个既带有系统性又带有跳跃性的搜索算法。 它的问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结 ...
分类:
编程语言 时间:
2019-03-21 09:12:22
阅读次数:
155
回 溯 法 回溯算法实际是一个类似枚举的搜索尝试方法,它的主题思想是在搜索尝试中找问题的解,当不满足求解条件就”回溯”返回,尝试别的路径。回溯算法是尝试搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”的思想,作为其控制结构。 【例1】八皇后问题模型建立 要在8*8的国际象棋棋盘中放八个皇后 ...
分类:
编程语言 时间:
2019-02-15 18:00:47
阅读次数:
162
http://218.5.5.242:9018/JudgeOnline/problem.php?id=1263 题目描述 在N*N的棋盘上(1<N≤10)填入1,2,...N*N共N*N个数,使得任意两个相邻的数之和为素数.例如,当N=2时,有 : 1 2 4 3 其相邻数的和为素数的有:1+2,1... ...
分类:
编程语言 时间:
2019-02-13 22:55:14
阅读次数:
319
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表 ...
分类:
其他好文 时间:
2019-02-07 23:30:08
阅读次数:
314