一道队列广搜题 此题使用队列实现,现将初始状态加入到空的队列当中;然后每次取出对首,找出队首所能转移到的状态,再将其压入队列;如此反复,这样就能保证一个状态在被访问的时候一定是采用的最短路径。 广度优先搜索的一般形式 这里是使用队列实现广度优先搜索的一般形式: Q.push(初始状态);//将初始状 ...
分类:
其他好文 时间:
2020-07-06 10:32:54
阅读次数:
62
题目信息 时间: 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
public class Route<T> { /// <summary> /// 终点相对于起点的维度 /// </summary> public int Dimension { get; } /// <summary> /// 完整路线 /// </summary> public string ...
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组 ...
分类:
其他好文 时间:
2020-07-04 01:30:22
阅读次数:
51
一、二叉树的深度优先遍历 对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 那么深度遍历有重要的三种方法。这三种方式常被用于访问树的节点,它们之间的不同在于访问每个节点的次序不同。这三种遍历分别叫做先序遍历(preorder_t ...
分类:
编程语言 时间:
2020-07-04 01:10:49
阅读次数:
70
一、技术总结 这题是关于DFS即深度优先遍历算法,核心是掌握深度遍历算法的思想,也就是不断往下一个结点进行查找,如果查找不到,那么就返回; 关键点一个是递归边界,也就是查找不到的条件,以及能够往下查找的路有多少条; 二、参考代码 #include<iostream> #include<vector> ...
分类:
其他好文 时间:
2020-07-02 21:44:59
阅读次数:
55
先说明一下:本体正确解法使用BFS(广度优先),最下方的是关于BFS的思路 BFS与DFS最大的区别在于: BFS首先搞同一层,然后从同一层一个个出发,找下一层 DFS首先搞一个,一直搞到底,然后再搞下一个,也就是回溯 接下来,我首先分析一下,我的整个思路的分析~~ ==超时的个人思路:= 对于我个 ...
分类:
其他好文 时间:
2020-07-02 21:22:19
阅读次数:
67
一、二叉树 二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。 两种特殊的二叉树 满二叉树(Full Binary Tree) 一棵满二叉树就是高度为k,且拥有(2^k)-1个节点的二叉树,一棵满 ...
分类:
编程语言 时间:
2020-07-02 00:19:06
阅读次数:
58
图的遍历DFS 与树的深度优先遍历之间的联系 树的深度优先遍历分为:先根,后根 //树的先根遍历 void PreOrder(TreeNode *R){ if(R!=NULL){ visit(R); //访问根节点 while(R还有下一个子树T) PreOrder(T); //先根遍历下一棵子树 ...
分类:
其他好文 时间:
2020-06-30 14:54:31
阅读次数:
55