数据结构
文章平均质量分 67
无荒111000
这个作者很懒,什么都没留下…
展开
-
单调队列双端队列
单调队列解决窗口内最值问题 单调队列:具有一定单调性的队列(单调递增,单调递减),可以从队列的首尾进出元素。 例题:LeetCode239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释: 滑动窗口的位置原创 2021-01-02 11:47:11 · 303 阅读 · 0 评论 -
LeetCode第212题单词搜索 II
212. 单词搜索 II 题目: 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。 示例 1: 输入:board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], w原创 2020-12-01 22:49:22 · 505 阅读 · 2 评论 -
LeetCode第200题岛屿数量
200. 岛屿数量 题目: 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ [“1”,“1”,“1”,“1”,“0”], [“1”,“1”,“0”,“1”,“0”], [“1”,“1”,“0”,“0”,“0”], [“0”,“0”,“0”,“0”,“0”] ] 输出:1 示例 2: 输入:grid = [ [原创 2020-11-16 09:48:18 · 196 阅读 · 0 评论 -
2017年javaC组决赛第6题 合根植物
题目:合根植物 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。 如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式: 第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。 接下来一行,一个整数k,表示下面还有k行数据(0<k<100000) 接下来k行,第行两个整原创 2020-11-16 09:34:20 · 105 阅读 · 0 评论 -
字典树(前缀树)简单实现
什么时字典树 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 基本操作 查找、插入、删除(此段代码没有实现删除) 实现 在每一个节点上不保存信息,把信息保存在边(路径)上。 如上图所示将字符串的状态表示在节点之间的连接线上。 插入: 遍历需要插入的字符串,从树的根节点开始查找,是否存在当原创 2020-11-15 21:55:22 · 349 阅读 · 0 评论