N皇后问题是非常经典的一道问题,解题的方法也有很多,非常经典包括暴力回溯法。 DFS就是深度优先搜索的首字母,简单理解就是把所有可能是答案的结果都尝试一遍,用走迷宫来举例子的话就是一条路走到黑,如果走到死路了,再退回上一个分岔口选择另一条路继续一条路走到黑。 属于入门时非常常用的暴力算法,考察的知识 ...
分类:
编程语言 时间:
2020-02-12 16:26:00
阅读次数:
107
(1)问题描述:有一批共 n 个集装箱要装上 2 艘载重量分别为 capacity1 和 capacity2 的轮船,其中集装箱 i 的重量为 wi,且装载问题要求确定是否有一个合理的装载方案可将这些集装箱装上这 2 艘轮船。如果有,找出一种装载方案。 例如:当 n = 3, capacity1 = ...
分类:
编程语言 时间:
2020-02-12 11:16:27
阅读次数:
76
一、题目说明 题目是46. Permutations,给一组各不相同的数,求其所有的排列组合。难度是Medium 二、我的解答 这个题目,前面遇到过类似的。回溯法(树的深度优先算法),或者根据如下求解: "刷题31. Next Permutation" 我考虑可以用dp做,写了一个上午,理论我就不说 ...
分类:
其他好文 时间:
2020-02-12 10:40:54
阅读次数:
88
一. 事件 事件的三个阶段:事件捕获 -> 事件目标 -> 事件冒泡 捕获阶段:先由文档的根节点document往事件触发对象,从外向内捕获事件对象; 目标阶段:到达目标事件位置(事发地),触发事件; 冒泡阶段:再从目标事件位置往文档的根节点方向回溯,从内向外冒泡事件对象 事件捕获:事件发生时首先发 ...
分类:
Web程序 时间:
2020-02-11 17:43:54
阅读次数:
87
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] 来源:力扣(LeetCode)链接:h ...
分类:
其他好文 时间:
2020-02-09 20:16:12
阅读次数:
47
「JSOI2015」salesman "传送门" 显然我们为了使收益最大化就直接从子树中选大的就好了。 到达次数的限制就是限制了可以选的子树的数量,因为每次回溯上来都会减一次到达次数。 多种方案的判断就是看自己选中的子树中和没选的子树中是否存在两个值相等的,这样它们就可以通过互换来达到另一种方案,值 ...
分类:
Web程序 时间:
2020-02-08 17:34:19
阅读次数:
83
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 法1): 本题典型的回溯算法,但是没有剪枝,在42/43个case的时候超时了,以下是代码。 PS:尝试过如果当前和大于全局最小,则停止,但是由于有负数的存在,现在大的值也可以通过-9999成为最小值,剪枝失败。 cl ...
分类:
其他好文 时间:
2020-02-08 17:23:49
阅读次数:
72
需要重点以下10种数据结构和10种算法: 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树 10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法 ...
分类:
编程语言 时间:
2020-02-08 13:41:32
阅读次数:
88
什么是回溯算法? 回溯法是一种系统搜索问题解空间的方法。为了实现回溯,需要给问题定义一个解空间。说到底它是一种搜索算法。只是这里的搜索是在一个叫做解空间的地方搜索。而往往所谓的dfs,bfs都是在图或者树这种数据结构上的搜索。 根据定义来看,要实现回溯,需要两点: 搜索 解空间 先看什么是解空间 就 ...
分类:
编程语言 时间:
2020-02-08 12:00:03
阅读次数:
79
题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 解题思路 ...
分类:
其他好文 时间:
2020-02-08 11:32:30
阅读次数:
68