队列+优先队列,
文章平均质量分 51
队列+优先队列,邻接表之类,优先队列stl默认大根堆
answer_yym
且随疾风前行
展开
-
Z字形打印二叉树
【代码】Z字形打印二叉树。原创 2024-05-27 10:35:01 · 175 阅读 · 0 评论 -
接雨水二维数组
1、描述给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。来源2、关键字接雨水二维数组3、思路根据一维数组接雨水的思路,两边选两个边界,往里边填充,找到中间最大的,左边是一个单调不减数组,右边从右往左也是一个单调不减数组,左右两边同时往中间走,都到最高点就行了。这个二维,就是把周围一圈全部搞到小顶堆,然后根据周围的元素去更新“边界”:使用一个方向数组 dir[ 5 ]来遍历四周,使用一个visit标记有没有北方问过,原创 2021-11-03 16:12:26 · 904 阅读 · 0 评论 -
定长数组实现队列
定长数组实现队列#include<iostream>#define SIZE 100;using namespace std;class Queue{private: int arr[SIZE]; int head; int tail;public: Queue() { head=0; tail=0; } bool isFull() { return (tail+1)% SIZE==head; } bool isEmpty() { retu原创 2021-10-29 08:34:36 · 168 阅读 · 0 评论 -
找到K个最接近x的数
文章目录1、描述2、关键字3、思路1、描述给定一个排序好的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b示例 1:输入:arr = [1,2,3,4,5], k = 4, x = 3输出:[1,2,3,4]示例 2:输入:arr = [1,2,3,4,5], k =原创 2021-09-15 11:16:46 · 285 阅读 · 0 评论 -
通过删除字母匹配到字典里最长单词
文章目录1、描述2、关键字3、思路4、noets5、复杂度6、code1、描述给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”示例 2:输入:s = “abpc原创 2021-09-14 19:23:36 · 148 阅读 · 0 评论 -
二维网格中起点能否到终点。
文章目录1、描述2、关键字,3、思路4、notes5、复杂度6、code1、描述2、关键字,二维数组,起点到终点,能否有路3、思路BFS,当遍历了网格上所有的点,之后如果有就找到了,如果没有就是到不了,4、notes1、方向数组,int direct[5] = { 0,1,0,-1,0 }; // 方向,2、点座标的队列,3、标记访问过没有的flag网格4、遍历每个队列元素的时候,都有4个方向上的统计。BFS,使用一个等大小二维数组来标记是否访问过5、复杂度时间:O(N)原创 2021-09-13 21:45:00 · 210 阅读 · 0 评论 -
根据字符出现的频次排序
文章目录1、描述2、关键字&思路4、notes5、复杂度6、code1、描述给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键字&思路字符频次,-----> hash原创 2021-09-13 13:04:25 · 798 阅读 · 0 评论 -
有序矩阵中第 K 小的元素
文章目录1、描述2、关键字3、思路4、notes5、复杂度5、code1、描述给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。示例 1:输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8输出:13解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13示例 2:输入:matr原创 2021-09-13 11:30:11 · 178 阅读 · 0 评论 -
查找和最小的K对数字
1、描述给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数:[1,2],[1,4],[1,6],[7,2],[7,4原创 2021-09-13 09:55:41 · 177 阅读 · 0 评论 -
数组中的第K个最大元素
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2021-09-12 17:17:45 · 145 阅读 · 0 评论 -
会议室的最小个数
1、描述3、关键字会议室,最少个数,3、思路优先队列存储会议结束时间,小顶堆,堆顶元素是结束时间最早的,先给数组排个序,然后往小根堆进堆,如果下一个会议的开始时间比堆顶元素(结束时间)更晚,则把堆顶元素出堆之后再进堆,遍历整个排序数组,返回堆的个数。就是最少的会议室个数。4、notes堆创建过程的个数就是了。另外一个问一个人能否都参加所有会议,题解在最后,5、复杂度时间:排序时间库函数O(NlogN)优先队列也是这个空间:O(N)最大的并行,都不能同时进行6、code(最少会议室原创 2021-09-12 16:30:27 · 866 阅读 · 0 评论 -
最小的K个数
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))通过次数43,604提交次数76,666来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载原创 2021-09-03 09:25:12 · 86 阅读 · 0 评论 -
合并2个有序链表 & K个有序链表,
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4-原创 2021-09-01 15:13:28 · 129 阅读 · 0 评论 -
网络延迟时间
1、描述有 n 个网络节点,标记为 1 到 n。给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。现在,从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1 。来源:力扣(LeetCode)链接著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键字网络节点,最短时间,遍历原创 2021-08-02 10:55:45 · 148 阅读 · 0 评论