尺取/折半
巴巴多斯小魔
这个作者很懒,什么都没留下…
展开
-
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 · 148 阅读 · 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 · 222 阅读 · 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 评论