![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 74
小月亮与六便士
这个作者很懒,什么都没留下…
展开
-
并查集(合并)
547. 省份数量难度中等有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个n x n的矩阵isConnected,其中isConnected[i][j] = 1表示第i个城市和第j个城市直接相连,而isConnected[i][j] = 0表示二者不直接相连。返回矩阵中省份的数量。...转载 2022-03-24 19:28:36 · 165 阅读 · 0 评论 -
二进制枚举
2212. 射箭比赛中的最大得分难度中等18收藏分享切换为英文接收动态反馈Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下:Alice 先射numArrows支箭,然后 Bob 也射numArrows支箭。 分数按下述规则计算: 箭靶有若干整数计分区域,范围从0到11(含0和11)。 箭靶上每个区域都对应一个得分k(范围是0到11),Alice 和 Bob 分别在得分k区域射中ak和bk支箭。如果ak>= bk,那么 Al...转载 2022-03-23 11:39:08 · 105 阅读 · 0 评论 -
并发编程JUC的AQS底层源码
AQS是JUC的核心,明白AQS基本上JUC下的工具类就会使用:最近明白AQS是怎么实现的,以前理解很模糊,所以现在总结一下AQS其实就是CLH队列(很想双向链表+state状态)后面很详细故事背景:最近看七龙珠嘻嘻以ReentrantLock为例package JUC;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReentrantLock;public ...原创 2021-02-11 23:28:11 · 216 阅读 · 0 评论 -
滑动窗口问题
76. 最小覆盖子串难度:困难给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。 如果s中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a...原创 2021-12-28 19:07:07 · 221 阅读 · 0 评论 -
二分查找需要注意点
475. 供暖器难度 中等冬季已经来临。你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋houses和供暖器heaters的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。示例 1:输入: houses = [1,2,3], heaters = [2]输出: 1解释: 仅在位置2上有一个供暖器。如果我们将加热半...原创 2021-12-20 19:37:17 · 109 阅读 · 0 评论 -
堆排序(likou 912)
912. 排序数组难度中等给你一个整数数组nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000 -50000 <= nums[i] <= 50000使用堆排序的方式解决这个问题:怎么实现的呢,其实思想就是利用数组表示堆(完全...原创 2021-11-11 15:17:22 · 405 阅读 · 0 评论 -
双向链表+哈希表(likou146 LRU缓存机制)
146. LRU 缓存机制难度 : 中等运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当...原创 2021-11-10 11:46:45 · 203 阅读 · 0 评论 -
前缀树(likou208、likou211)
摸鱼:mm211. 添加与搜索单词 - 数据结构设计难度 :中等请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类WordDictionary:WordDictionary()初始化词典对象 void addWord(word)将word添加到数据结构中,之后可以对它进行匹配 bool search(word)如果数据结构中存在字符串与word匹配,则返回true;否则,返回fals...原创 2021-10-20 19:07:27 · 138 阅读 · 0 评论