上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页
摘要: 题目描述: 输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。 如果两个字符“@”所在的格子相邻(横、竖或者对角线方向),就说它们属于同一个八连块。 思路: 还是使用图的DFS来解决问题,需要注意的都在代码注释里面。 代码: 阅读全文
posted @ 2019-02-21 14:57 |旧市拾荒| 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定一个方阵,定义连通:上下左右相邻,并且值相同。可以想象成一张地图,不同的区域被涂以不同颜色。 输入: 整数N, (N<50)表示矩阵的行列数 接下来N行,每行N个字符,代表方阵中的元素 接下来一个整数M,(M<1000)表示询问数 接下来M行,每行代表一个询问, 格式为4个整数,y1 阅读全文
posted @ 2019-02-21 14:42 |旧市拾荒| 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 一、图的表示 从图的逻辑结构定义来看,无法将图中的顶点排列成一个唯一的线性序列。在图中任意一个顶点都可以看成是图的第一个顶点,对任何一个顶点而言,它的邻接点之间也不存在顺序关系。为了方便存储和操作,需要将图中的顶点按一定的序列排列起来。 顶点在图中的位置就是指该顶点在人为确定的序列中的位置。 由于图 阅读全文
posted @ 2019-02-21 13:46 |旧市拾荒| 阅读(1749) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 图(graph)是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系的集合组成。 图由顶点和边组成,顶点表示对象,边表示两个对象间的连接关系。 图大体分为两种,边没有指向性的叫无向图,边具有指向性的叫有向图。 方向起始的顶点称为起点或尾(弧尾)。方向指向的顶点称为终点或头(弧 阅读全文
posted @ 2019-02-21 12:20 |旧市拾荒| 阅读(925) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶子结点所经过的结点形成一条路径。这里只讨论简化版本,原题目的意思是路径不限制。 思路: 这种题目经过前面的学习很容易看出使用dfs来解决。这里还使用到了带前缀的dfs,可以和 阅读全文
posted @ 2019-02-21 00:29 |旧市拾荒| 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 一、问题 求有根树的任意两个节点的最近公共祖先(一般来说都是指二叉树)。最近公共祖先简称LCA(Lowest Common Ancestor)。例如,如下图一棵普通的二叉树。 结点3和结点4的最近公共祖先是结点2,即LCA(3,4)=2 。在此,需要注意到当两个结点在同一棵子树上的情况,如结点3和结 阅读全文
posted @ 2019-02-21 00:08 |旧市拾荒| 阅读(2879) 评论(0) 推荐(0) 编辑
摘要: 问题: 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值。保证结点的值大于等于零小于等于100000且没有重复值,若不存在后继返回-1。注意这里没有parent指针。 思路: 本 阅读全文
posted @ 2019-02-20 23:00 |旧市拾荒| 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 对于树的访问先是从根节点开始进行的,递归左子树和右子树,对于左子树和右子树又可以看成是一棵子树继续递归下去,访问根节点的时候它不是直接处理根节点的而是需要等待它的左子树调用完之后那么才进行处理的,左子树也是一样,当访问到它的左子树的时候也需要等待它的左子树处理完毕才处理自己。 这也就是先访问,后出现 阅读全文
posted @ 2019-02-20 22:33 |旧市拾荒| 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点(不存在重复数据)。树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 如果当前节点有右孩子,则下一个节点是右孩子中最左子节点。如果当前节点是其父节点的左子节点,则下一个节点就是父节点(节点没有右孩子)。如果当前节点 阅读全文
posted @ 2019-02-20 18:51 |旧市拾荒| 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 一、问题: 请实现一个函数,检查一棵二叉树是否为二叉查找树。给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。 二、思路: 解法一:从根节点开始遍历二叉树,其中需要使用到递归进行遍历节点,判断根的左右节点的值与根节点的值的大小的比较,其中递归的思路是假如树 阅读全文
posted @ 2019-02-20 18:32 |旧市拾荒| 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 题目一: 求一个二叉树的最小深度。 TreeNode类: public class TreeNode<T> { public T val; public TreeNode<T> left = null; public TreeNode<T> right = null; public TreeNode 阅读全文
posted @ 2019-02-20 17:59 |旧市拾荒| 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一、Trie简介 在计算机科学中,Trie,又称字典树、前缀树、单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较 阅读全文
posted @ 2019-02-20 17:12 |旧市拾荒| 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class BSTPlus extends BinarySearchTree { 5 public int numOfLeaf() { 6 return numOfLeaf(root); 7 } 8 9 ... 阅读全文
posted @ 2019-02-20 16:37 |旧市拾荒| 阅读(147) 评论(0) 推荐(0) 编辑
摘要: AVL自平衡二叉树在教科书上比较常见,因为是最先提出的自平衡二叉树,自然是学术价值比较的高,但是目前工业环境觉得名为红黑二叉树RBT(Red-Black Tree)的自平衡二叉树使用的更为的广泛,比如C++标准库中的有序容器(std::set、std::map),Linux内核中的很多数据结构等,都 阅读全文
posted @ 2019-02-19 17:22 |旧市拾荒| 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、平衡二叉树 任何一个数据的查找过程都需要从根结点出发,沿某一个路径朝叶子结点前进。因此查找中数据比较次数与树的形态密切相关。 对于二叉树来说,当树中每个结点左右子树高度大致相同时,树高为logN。则平均查找长度与logN成正比,查找的平均时间复杂度在O(logN)数量级上。当先后插入的关键字有序 阅读全文
posted @ 2019-02-19 15:49 |旧市拾荒| 阅读(786) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页