![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
滑动窗口
seez
njfu
展开
-
6.多重背包问题3 (单调队列优化)
原题链接原创 2022-02-01 11:34:38 · 611 阅读 · 0 评论 -
1238. 日志统计
1.暴力做法 #include <iostream> #include <algorithm> #include <cstring> //暴力做法,会超时 using namespace std; #define x first #define y second const int N = 100005; bool id[N]; //表示一个帖子是否是热帖 typedef pair<int, int> PII; PII ts[N]; ...原创 2021-11-29 20:46:08 · 608 阅读 · 0 评论 -
799. 最长连续不重复子序列(滑动窗口,双指针)
维护一个窗口,然后每次枚举时,都进行进出窗口的操作就可以了 #include <iostream> #include <algorithm> using namespace std; const int N=1e5+10; int a[N]; bool st[N]; int res; int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; ...原创 2022-01-23 23:07:40 · 722 阅读 · 0 评论 -
leetcode 713. 乘积小于K的子数组(双指针,滑动窗口)
双指针算法,首先想想暴力怎么做 for(int i=0;i<nums.size();i++) { long long sum=1; for(int j=i;j<nums.size();j++) { sum*=nums[j]; if(sum<k) res++; if(sum>=k) break; } } 双指针算法维护区间信息,通..原创 2022-01-23 22:54:42 · 237 阅读 · 0 评论 -
763. 划分字母区间(滑动窗口,贪心)
分析:运用滑动窗口的思想,开needs哈希表和窗口哈希表,由于要划分尽可能多的片段,那么只要当前窗口中全部元素都满足了needs的数量(同一字母只在一个片段中),就立即断开,保证尽可能多的数量 class Solution { public: vector<int> partitionLabels(string s) { unordered_map<char,int> needs;//需求 unordered_map<char,in...原创 2022-01-01 15:23:40 · 359 阅读 · 0 评论