深度优先搜索:将问题划分为,邻近的四个方向格子所能到达的格子数+1,由于又是从0,0开始的所以只用右、下两个方向的邻近格子就行了。 class Solution { boolean[][] visited; public int movingCount(int m, int n, int k) { ...
分类:
其他好文 时间:
2020-07-29 15:24:37
阅读次数:
71
Q:给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。 说明: 如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。 ...
分类:
其他好文 时间:
2020-07-26 19:10:17
阅读次数:
61
1.1题目 给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例1: 示例2: 1.2解答 很显然只能将所有情况完全遍历一次,将以任意一点为起点的情况全部遍历完,也就是对每个点进行深度优先搜索。 ...
分类:
其他好文 时间:
2020-07-26 15:08:01
阅读次数:
51
题目 剑指 Offer 12. 矩阵中的路径 我的思路 深度优先搜索,递归实现。 注意剪枝时需要恢复没走过的路径。 我的实现 class Solution { public: bool search(int cor_x,int cor_y,int str_pos,vector<vector<char ...
分类:
其他好文 时间:
2020-07-23 15:51:14
阅读次数:
66
深度优先搜索 一、特点 从最开始的状态出发,遍历所有能到达的地方,每个状态只会进行一次,通过递归的思想实现 二、例题 例一 部分和问题: 给定整数 a1、a2、…、an,判断是否可以从中选出若干数,使它们的和恰好为 k 限制条件 1 ≤ n ≤ 20 108 ≤ ai ≤ 108 108 ≤ k ≤ ...
分类:
其他好文 时间:
2020-07-21 09:29:40
阅读次数:
110
1. 搜索算法 在树(图/状态集)中寻找特定节点 深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构。 图上的搜索算法就是,在图中找出从一个顶点出发,到另一个顶点的路径。图上的搜索算法有深度优先、广度优先搜索算法,和A*A?、IDA*IDA? 等启发式搜索算法。 广度优先搜索和深度优先搜索 ...
分类:
编程语言 时间:
2020-07-19 23:30:25
阅读次数:
103
递归(Recursion)算法思想递归算法是一种调用自身函数的算法(二叉树的许多性质在定义上就满足递归)。递归的基本性质就是函数调用,在处理问题的时候,递归往往是把一个大规模的问题不断地变小然后进行推导的过程。 举例:(汉诺塔问题)有三个塔 A、B、C,一开始的时候,在塔 A 上放着 n 个盘子,它 ...
分类:
编程语言 时间:
2020-07-14 00:42:37
阅读次数:
70
N个城市,编号1到N。城市间有R条单向道路。每条道路连接两个城市,有长度和过路费两个属性。Bob只有K块钱,他想从城市1走到城市N。问最短共需要走多长的路。如果到不了N,输出-12<=N<=1000<=K<=100001<=R<=10000每条路的长度 L, 1 <= L <= 100,每条路的过路 ...
分类:
其他好文 时间:
2020-07-08 18:21:18
阅读次数:
47
题目信息 时间: 2019-07- 题目链接:Leetcode tag: 平衡二叉树 深度优先搜索 难易程度:简单 题目描述: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例1: 给定二叉树 [3,9,20,nu ...
分类:
其他好文 时间:
2020-07-05 17:48:08
阅读次数:
71
python设计模式之模板模式 编写优秀代码的一个要素是避免冗余。在面向对象编程中,方法和函数是我们用来避免编写冗余代码的重要工具。 现实中,我们没法始终写出100%通用的代码。许多算法都有一些(但并非全部)通用步骤。广度优先搜索( Breadth-First Search, BFS)和深度优先搜索 ...
分类:
编程语言 时间:
2020-07-04 20:55:38
阅读次数:
58