代码随想录
qishanbaby
这个作者很懒,什么都没留下…
展开
-
LeetCode 347. 前 K 个高频元素 刷题日记
题目:给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按返回答案。[1,2][1]原创 2023-07-09 20:33:36 · 30 阅读 · 1 评论 -
LeetCode 239. 滑动窗口最大值 代码随想录刷题日记
push(value):如果push的元素value大于入口元素的数值,那么就将队列入口的元素弹出,直到push元素的数值小于等于队列入口元素的数值为止。pop(value):如果窗口移除的元素value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。思路其实挺简单的,就是单调队列,保持队列的单调性,每次取队头的元素即可。滑动窗口的位置 最大值。2 关于bug的调试。1 元素的入队和弹出。原创 2023-07-09 15:18:03 · 29 阅读 · 1 评论 -
LeetCode 1. 两数之和 哈希法 代码随想录刷题日记
哈希法可以帮助我们快速的判断元素是否出现在集合中,这题可以通过哈希法借助题目所给的条件:nums[ i ] + nums[ j ] = target ,来快速找到满足条件的组合。即,先构造一个 unordered_map 来表示哈希表,unordered_map 的查找效率为(0N (1)),当还没找到满足条件的元素是当前元素加入哈希表中。,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。1 这个题目,体现哈希表通过题目条件关系,在集合中快速找到满足条件的元素。原创 2023-05-07 17:44:39 · 25 阅读 · 1 评论 -
LeetCode 349. 两个数组的交集 哈希表 & vector双指针去重
2 去重:(注意unique用法)哈希映射——>unordered_set。vector 去重 + 双指针遍历。输出结果中的每个元素一定是。349. 两个数组的交集。原创 2023-05-06 18:34:27 · 42 阅读 · 0 评论 -
unordered_map 实现哈希表 代码随想录刷题日记
4 unordered_map 配合unordered_map<string,vector<string>> 可以实现 使用unordered_map 模拟拉链法解决冲突。3 看题解之后,我发现c++标准库中有一个 unordered_map 其底层实现为哈希表。2 再想到用拉链法解决冲突,如果用数组模拟,因为有string,所以,我不大会。是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。1 实现想到用哈希表解决,但是此题一定会引发冲突,所以要解决冲突。原创 2023-05-05 11:14:35 · 53 阅读 · 0 评论 -
代码随想录刷题日记 螺旋矩阵
思路:即把n*n的区间分成四个部分(左闭右开)进行遍历,当n为奇数的时候,在矩阵之间要单独赋值。第一题 LeetCode 59. 螺旋矩阵 II。这里的loop要取min(m,n)/2。第二题 LeetCode 54. 螺旋矩阵。所有元素,且元素按顺时针顺序螺旋排列的。,返回矩阵中的所有元素。原创 2023-04-29 18:02:45 · 51 阅读 · 2 评论 -
代码随想录 数组 移除元素(暴力,快慢双指针)
当 nums[fast]!= val 时 ,即该元素可以加到结果数组中去 ,则有 nums[slow] = nums[fast];用双重循环解决,第一重:寻找在nums中与val相等的值 第二重:覆盖元素,从后往前覆盖即。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。slow 用来记录当前数组数组中的元素。不要使用额外的数组空间,你必须仅使用。fast 用来更新 寻找新的元素。的元素,并返回移除后数组的新长度。方法2:双指针算法(快慢指针)把后面的值覆给前面的值。原创 2023-04-16 19:07:21 · 48 阅读 · 0 评论