数据结构
cairjin
这个作者很懒,什么都没留下…
展开
-
leetcode 703. 数据流中的第K大元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的KthLargest类需要一个同时接收整数k 和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest kthLar...原创 2020-01-14 23:00:05 · 121 阅读 · 0 评论 -
leetcode 1046. 最后一块石头的重量
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 ...原创 2020-01-14 17:27:24 · 157 阅读 · 0 评论 -
leetcode 1209. 删除字符串中的所有相邻重复项 II
给你一个字符串s,「k 倍重复项删除操作」将会从 s中选择k个相邻且相等的字母,并删除它们,使被删去的字符串的左侧和右侧连在一起。你需要对s重复进行无限次这样的删除操作,直到无法继续为止。在执行完所有删除操作后,返回最终得到的字符串。本题答案保证唯一。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-a...原创 2020-01-13 13:49:07 · 217 阅读 · 0 评论 -
leetcode 987. 二叉树的垂序遍历
给定二叉树,按垂序遍历返回其结点值。对位于(X, Y)的每个结点而言,其左右子结点分别位于(X-1, Y-1)和(X+1, Y-1)。把一条垂线从X = -infinity移动到X = +infinity,每当该垂线与结点接触时,我们按从上到下的顺序报告结点的值( Y坐标递减)。如果两个结点位置相同,则首先报告的结点值较小。按X坐标顺序返回非空报告的列表。每...原创 2020-01-09 16:09:18 · 125 阅读 · 0 评论 -
leetcode 1038. 从二叉搜索树到更大和树
给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node的新值等于原树中大于或等于node.val的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null...原创 2020-01-03 15:17:20 · 172 阅读 · 0 评论 -
数据结构与算法之PHP用邻接表、邻接矩阵实现图的深度优先遍历(DFS)
一、基本思想1)访问指定的起始顶点v;2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。二、图的存储结构三、实现方式1、邻接表<?php/** * 图的深度优先遍历 * 图的存储结构--邻接表...原创 2019-06-05 17:43:38 · 277 阅读 · 1 评论