数据结构
吕兰兵
这个作者很懒,什么都没留下…
展开
-
654. 最大二叉树
654. 最大二叉树给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :输入:[3,2,1,6,0,5]输出:返回下面这棵树的根节点: 6 / \ 3 5 \ / 2 0 \原创 2020-10-31 14:39:14 · 188 阅读 · 0 评论 -
扫雷游戏
529. 扫雷游戏题目让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:如果一个地雷(‘M’)被挖出,游戏就结束了- 把它改为原创 2020-09-27 09:23:37 · 212 阅读 · 0 评论 -
513. 找树左下角的值
513. 找树左下角的值题目给定一个二叉树,在树的最后一行找到最左边的值。输入: 2 / \ 1 3输出:1输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7思路用一个队列存储树一层的所有节点再用一个数组存储一层的所有元素最后返回数组的第一个元素代码# Definition for a binary tree node.# c原创 2020-09-26 19:52:00 · 93 阅读 · 0 评论 -
111.二叉树的最小深度
111.二叉树的最小深度题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。例子给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7思路用一个队列存储树一层全部节点在出队的时候判断该节点是否有孩子,如果没有就返回深度。代码# Definition for a binary tree node.# class TreeN原创 2020-09-26 16:41:42 · 81 阅读 · 0 评论 -
leetcode 559 N叉树的最大深度
leetcode 559 N叉树的最大深度题目给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。思路使用队列存储树的一层的所有元素因为node.children为列表,还要循环遍历所有子节点,并存储到数组和队列中。如果数组不为空则,深度加一。代码"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self原创 2020-09-26 15:25:57 · 59 阅读 · 0 评论 -
leetcode 107 二叉树的层次遍历 II
leetcode 107 二叉树的层次遍历 II题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例子给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]思路先判断树是否存在用一个队列来保存树的一层元素取出原先队列中的元素,存储到一个临时数组中,把原创 2020-09-26 15:00:39 · 78 阅读 · 0 评论 -
堆排序
条件:1、完全二叉树(性质)2、父节点大于子节点比如构建一个堆子节点中最大值于父节点交换从倒数第二次开始heapify完全二叉树的性质多个节点heapify 5 > Created Time: 2019年09月16日 星期一 23时23分40秒 6 **...翻译 2019-09-17 00:15:10 · 92 阅读 · 0 评论