![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
尺取/折半
巴巴多斯小魔
这个作者很懒,什么都没留下…
展开
-
leetcode 15. 三数之和 / 两数之和的情况种数
题目class Solution {public: vector<vector<int>>ans; void solve(int x,int y,int z){ vector<int>tmp; tmp.push_back(x),tmp.push_back(y),tmp.push_back(z); ans.push_back(tmp); } vector<vector<int&原创 2021-02-20 23:34:14 · 95 阅读 · 0 评论 -
leetcode 992. K 个不同整数的子数组 (求有多少个区间满足不同数个数为K 简单)
题目算不上尺取吧,看一眼就会了。class Solution {public: int subarraysWithKDistinct(vector<int>& a, int K) { int n=a.size(),vis[n+1],las[n]; memset(vis,0,sizeof vis); vis[a[n-1]]=n-1; for(int i=n-2;i>=0;--i){原创 2021-02-10 17:04:13 · 147 阅读 · 0 评论 -
leetcode 424. 替换后的最长重复字符(可将任意k个字符替换成任意字符 求最长重复子串 尺取)
题目找到最长的窗口,这个窗口可满足替换k次所有字符相同。这个窗口满足尺取特性。class Solution {public: int cnt[26]; int characterReplacement(string s, int k) { int n=s.size(),ans=0; int i=0,j=0,mx=0; while(j<n){ while(j<n&&(j-i+1-max(原创 2021-02-02 00:35:45 · 220 阅读 · 0 评论 -
leetcode 494. 目标和(n个数每个数取+或者- 相加=sum的情况 sum不大时dp 否则折半枚举)
题目我真的好烦啊!!!我这么瘦弱 风还肆无惮忌的吹我,都感冒了,一整天天昏昏沉沉。我不想下标从0开始,好烦啊好烦啊,一道傻逼代码调了一下午我真是醉了。现在脑子还很懵。假如n个数,对于折半枚举后的答案存放在b,b数组里,按说开[(1<<(N/2+1))+1]就够了,所以我就随便开了,[1<<N],但是N=1的时候尴尬了。。。。下面代码:n=1时:p=-1,dfs(0,nums,0),显然是不行的。int n=nums.size();a=new ll[1<<n原创 2020-11-13 14:13:32 · 96 阅读 · 0 评论 -
leetcode 一些尺取题
题目注意! 尺取的时候先判断是否越界 r<n&&vis[s.charAt(r)-'a'+1000]==0 而不能 vis[s.charAt(r)-'a'+1000]==0&&r<n。绝了,平常打acm都不用string,用char数组没管过这些。。反正char数组开得大。class Solution { public int max(int a,int b){return a>b?a:b;} public int lengthOfLo原创 2020-11-13 14:12:30 · 121 阅读 · 0 评论