
双指针、滑动窗口
溺水的鱼xu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最长无重复子数组、子串
NC41 最长无重复子数组 #include<bits/stdc++.h> class Solution { public: int maxLength(vector<int>& arr) { // write code here map<int,int> mp; int i=0,j=1; mp[arr[0]]=0; int Max=1; while(j&l原创 2021-07-27 15:24:07 · 258 阅读 · 0 评论 -
NC61 两数之和
两数之和 这道题的思想就是双指针加上记录数字所在数组的下标。 我的解法:他垃圾了 因为需要排序,但已排序下标就乱了。 我的思路因为说是有唯一结果,相同的数组最多有两个,如果是相同的,必是想两个数和为targart或者这个相同数不与其他数字组成target,所以两个map记录下标足够了 #include<bits/stdc++.h> class Solution { public: vector<int> twoSum(vector<int>& num.原创 2021-07-13 07:46:34 · 98 阅读 · 0 评论 -
NC28 最小覆盖子串
NC28 最小覆盖子串 滑动窗口的思想 这道题目用到了滑动窗口这一大杀器,它可以解决如下问题: 最小覆盖子串(LeetCode76) 字符串排列(LeetCode567) 统计字母异位词(LeetCode438) 最长无重复子串(LeetCode3) 滑动窗口的基本思想: 用两个字典分别维护窗口中字符的统计数量、以及被求解子串中字符的统计数量 用双指针遍历主字符串,双指针的初始值均为0,窗口的范围是[left, right)(左闭右开) 遍历过程中,不断增大、缩小窗口,并更新状态 class So原创 2021-07-15 16:40:32 · 990 阅读 · 0 评论 -
滑动窗口问题总结
滑动窗口问题一般都是一个字符串匹配s1另一个 字符串s2的问题。滑动窗口的问题一般分成一下几个步骤走: 1,记录下字符串s1中的字符mp1 2,使用双指针的形式遍历字符串s2,同时记录下遍历的字符mp2 3,在遍历字符串的过程中,没次移动都比较一下mp1和mp2是否想通了,想通了就认为是匹配成功了。 窗口大小不固定  { vector< vector<int> >dp(nums1.size()+5,vector<int> (nums2.size()+5)); nums1.insert原创 2021-07-21 13:04:05 · 65 阅读 · 0 评论 -
NC82 滑动窗口的最大值
NC82 滑动窗口的最大值原创 2021-07-21 16:33:03 · 327 阅读 · 0 评论 -
两数、三数之和问题
两数之和 双指针 两数之和问题显而意见是用双指针来写,要想使用双指针前提是数组提前有序。这道题的坑就在这里,数组无序,我们需要先排序,但是题目让返回的却是数字所在原数组的下标,如果已排序就乱了,因此有两种方法,一种就是我认为简单的我们在进行排序,只不过把下标和数组放在一起进行排序。 #include<bits/stdc++.h> int vis[100100]; //这里的默认为是大于号 bool cmp(pair<int,int>a, pair<int,int> b)原创 2021-07-22 12:25:37 · 127 阅读 · 0 评论 -
LeetCode 1160. 拼写单词
LeetCode 1160. 拼写单词原创 2021-07-28 13:16:51 · 85 阅读 · 0 评论