
DFS
文章平均质量分 52
binling
这个作者很懒,什么都没留下…
展开
-
LeetCode 827 最大人工岛 题解
给你一个大小为 n x n 二进制矩阵 grid。最多 只能将一格 0 变成 1。返回执行此操作后,grid 中最大的岛屿面积是多少?岛屿 由一组上、下、左、右四个方向相连的 1 形成。经典的图论中连同分量的题目。原创 2022-09-18 16:39:49 · 385 阅读 · 1 评论 -
欧拉路径 LeetCode 332
图中一条路径,包含了所有边(且只包含一次)如果起点和终点是同一个点,则是一种特殊的欧拉路径——欧拉环路求法1:暴力法:遍历所有的路径,如果当前路径长度为总边数,则当前路径是一条欧拉路径,如果一直没有碰到这样的路径,则无解。一个图总共多少条路径(一般是有环的)1)不允许路径里有环,也就是路径里的点都只出现一次的,|V|!(第一个点|V|种选择,第二个|V| - 1种。。 n原创 2016-06-23 14:30:43 · 2302 阅读 · 0 评论 -
表达式生成问题
题目:给定一个数组,问:这组数进行四则运算(每个数必须用到,且只用一次)可以得到多少个不同的值?如何划分:表达式是一步一步算的,划分的方法就是哪个数先加入和表达式的当前值进行计算,并且有4种计算方式(其实是6种,减法和除法各2种顺序)def uniqueValues(A): ans = set() def dfs(i, value): if i == len(A): ans原创 2015-10-11 22:59:55 · 438 阅读 · 0 评论 -
路径搜索问题
之前碰到的很多问题都可以归结为路径搜索问题,就是求两点之间的路经1)是否存在路径2)求任意一条路径3)求所有路径求是否有路径和任意一条路径的时候,和正常遍历一样,一个点被mark之后不再访问,因为如果这个结点到终点有路径,之前就应该结束了,没结束说明没路径,再访问也无益。是 O(n)的,对于求所有路径,usedInPath 在进入结点时候mark,退出结点时候unmark, ...原创 2015-06-02 10:29:37 · 1154 阅读 · 1 评论 -
深度搜素——搜索嵌套
搜索问题,扩展节点的时候会iterate一个link集合,一般就是一个for 循环,但有的时候,这个集合并不能直接得到,而是另一个搜索问题,比如n个数分k组问题的一种解法是:问题分成k个步骤,每个步骤确定一个组,具体一个组可分的方案的candidate集合就不是直接可以用for来iterate的,而是另一个搜索问题——子集问题。这就引出一个重点,iterate不光可以额用for,也可以用搜索,搜索...原创 2015-10-19 14:27:22 · 749 阅读 · 0 评论 -
买一送一的最小代价问题
一堆商品,买一个可以送一个,但送的那个的价格必须小于买的那个的价格(强调一下,不能等于)。给定商品总数n和每个商品的价格,求得到全部商品的最少开销。例如:4个商品价格为[5, 4, 3, 3],最优解为9,即买5和4,送3和3。分析:这样去分解问题:分两步,第一步买一个,第二步选择赠品(或者不要赠品),然后剩下的商品是个递归问题(先买一个,再选赠品)。第一步里,当前商品中最贵的那个原创 2015-10-10 19:06:35 · 617 阅读 · 0 评论 -
递归、加法原理,如何分解问题(独立且完备的划分)
加法原理适用于做一件事有n种独立不相交且完备的方向,每个方向上有ai种方案,则总的方案数就是 a1 + a2 +... + an例题:把n个数分为k个非空子集,有多少种分法?分解问题:第一个集合里放多少个数把原问题的解分成了独立且完备的方向,分别解每个方向上的方案数,然后相加memo = [[-1] * (1000) for i in xrange(1001)]def group(n原创 2015-10-10 23:54:14 · 1495 阅读 · 0 评论 -
问题划分之二,乘法原理,笛卡儿积
一个问题有n个步骤,对应的就是搜索深度,每个步骤有m中方法,对应的就是一个节点的扩展节点个数(图论中的边的个数),总的方案数适用乘法原理,就是每个步骤的方案数相乘,具体的方案几个就是每个步骤的方案的笛卡儿积连乘。搜索就是求方案笛卡儿积。也可以用加法原理分解,之前讨论过。就是按第一步的采用哪种方案划分,root上的方案数= 每个分支上的方案数的和原创 2015-10-19 14:38:33 · 548 阅读 · 0 评论 -
组合、子集问题汇总
子集的问题的思路也分两个方向,原创 2014-10-01 12:58:38 · 638 阅读 · 0 评论 -
回溯法中解空间树的组织
回溯法经典的Subset问题,可以有原创 2014-08-15 12:44:44 · 7477 阅读 · 0 评论 -
排列问题汇总
排列问题有两种解决方案1。原创 2014-09-26 00:56:16 · 599 阅读 · 1 评论 -
Interleaving String
题目:判断一个字符串c是否k原创 2014-08-13 23:12:32 · 455 阅读 · 0 评论