
滑动窗口
文章平均质量分 63
小pig饲养员
为了独立游戏正在努力积攒经济基础的程序员。
展开
-
LeetCode每日一题-2.3-480-滑动窗口中位数C++
题目描述 思路 multiset 看到困难题,小萌新稍微想了一下想用之前求中位数的方法:大根堆和小根堆,但是代码是在是太长了,只是为了春招没必要那么卷,于是去找了multiset的解法。 set的本质是红黑树:平衡二叉搜索树。而multiset是可以有重复元素的set 由于对stl还处在一知半解的地步,昨晚还在想着set有什么用呢,今天就意识到了。 set里面的数字是可以用迭代器来获得的:配合prev和next prev(迭代器,n) 返回迭代器的前n个位置的迭代器。 next(迭代器,n) 返回迭代器原创 2021-02-03 18:49:01 · 280 阅读 · 0 评论 -
LeetCode每日一题-2.15-485. 最大连续 1 的个数 + 2.19-1004. 最大连续1的个数 III
485 题目描述 思路 滑动窗口 这题实际上不需要滑动窗口,遇到1的话cnt++,遇到0cnt清零就行,但是敬业的找工作狗肯定要练练滑动窗口 class Solution { public: int findMaxConsecutiveOnes(vector<int>& nums) { int l = 0, r = 0; int len = nums.size(); int ans = 0; while(r &l原创 2021-02-20 18:32:26 · 195 阅读 · 0 评论 -
LeetCode每日一题-2.13-448. 找到所有数组中消失的数字
题目描述 思路 哈希表 使用额外空间,统计一遍数字以后寻找不存在的数字即可,代码很容易略 思路 原地统计 题目要求不开辟额外的空间,所以我们必须借助这个数组进行统计。 这里采用的思路是,遍历数组,使下标为[数组元素大小-1]的元素+数组长度, 这样最后哪个下标的元素<len,就说明其下标+1的元素没有出现。 注释代码写得很清楚了 class Solution { public: //思路:对于数组里面的每个数字,使得数字下标-1位置的元素+= n; //第二遍寻找的时候只要某个元素小于等于n,就说明原创 2021-02-20 15:57:56 · 170 阅读 · 0 评论 -
Leetcode每日一题2/6~2/10总结
还是关于滑动窗口的问题 2/6 1423-可获得的最大点数 2/7 题目描述 思路 逐步判断法 注释已经说得很清楚了 class Solution { public: bool checkPossibility(vector<int>& nums) { int len = nums.size(); if(len < 3) return false; int count = 0; for(int i = 1;原创 2021-02-10 20:07:07 · 157 阅读 · 0 评论 -
Leetcode-904+992-水果成篮+k个不同整数的子数组
904 题目描述 理解题目的意思其实是: 我们要在指定的数组里面,找到包含有两个不同整数的最大子数组 思路 滑动窗口 同样采用经典做法: 不断探索窗口右边界直到到达数组边界 当右边界遇到特殊情况时,改变左边界使得满足要求 每次更新解 具体思路就不写了,不难 class Solution { public: int totalFruit(vector<int>& tree) { int left = 0, right = 0, res = 0;原创 2021-02-10 14:09:28 · 156 阅读 · 0 评论 -
Leetcode每日一题2/1 ~2/5总结
开始积累自己的题量了,不得不说LeetCode这种专门针对一类题目的每日一题真的太适合萌新了,这个月做完希望滑动窗口的题目能够自信手撕。 2/1 : 思路:我们可以分别算出爱丽丝和鲍勃的糖果棒大小的总和,这样对于鲍勃/爱丽丝的每一根糖果,需要爱丽丝/鲍勃交换的那根的大小就是固定的。然后就变成寻找数字的问题了。采用哈希是查找最快的方法。 class Solution { public: vector<int> fairCandySwap(vector<int>& A,原创 2021-02-05 11:31:51 · 204 阅读 · 0 评论