当前位置: 首页 > wzjs >正文

wps2016怎么做网站仪征市建设发展有限公司网站

wps2016怎么做网站,仪征市建设发展有限公司网站,怎样建立公司网页,石河子建设网站如果在分析一道算法题的时候,发现使用的两个 ”双指针“ , 都是同向的 , 不回退的 , 且一直都在维护 “一段连续的区间” , 此时我们可以考虑使用 “滑动窗口” ! 一、长度最小的子数组 209. 长度最小的子…

如果在分析一道算法题的时候,发现使用的两个 ”双指针“ , 都是同向的 , 不回退的 , 且一直都在维护 “一段连续的区间” , 此时我们可以考虑使用 “滑动窗口” !

一、长度最小的子数组

209. 长度最小的子数组 - 力扣(LeetCode)

此时,利用解法二,时间复杂度降到了O(n) 级别的 , 是很优秀的算法了!!!

 利用滑动窗口模拟示例一:

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n = nums.size(),sum = 0,len = INT_MAX;for(int left = 0,right=0;right < n;right++){//1.进窗口 -> 并计算sumsum += nums[right];//2.出窗口 -> 如果sum >= targetwhile(sum >= target){//3.更新数据len = min(len,right-left+1);sum -= nums[left++];}}return len == INT_MAX ? 0 : len;}
};
虽然代码是两层循环,但是我们的 left 指针和 right 指针都是 不回退的 ,两者最多都往后移动 n 次。因此时间复杂度是 O(N) 

 为何滑动窗口可以解决问题,并且时间复杂度更低?

简单的总结一句:就是利用了单调性 , 规避许多没有必要的枚举行为! 

 二 、无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣(LeetCode)

class Solution {
public:int lengthOfLongestSubstring(string s) {int hash[128] = {0};//使用数组来模拟哈希表int left =0 ,right = 0 , n = s.size();int ret = 0;while(right < n){hash[s[right]]++;//进入窗口while(hash[s[right]]>1)//判断{hash[s[left++]]--;//出窗口}ret = max(ret , right - left +1);//更新结果right++;//让下一个元素进入窗口}return ret;}
};

三、最大连续1的个数

1004. 最大连续1的个数 III - 力扣(LeetCode)

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int zero = 0,n = nums.size();int ret = 0;for(int left = 0,right = 0;right<n;right++){//1.进窗口if(nums[right] == 0)zero++;//2.判断while(zero > k){//3.出窗口if(nums[left] == 0)zero--;left++;}//4.更新数据ret = max(ret , right - left +1);}return ret;}
};

四、将 x 减到 0 的最小操作数

1658. 将 x 减到 0 的最小操作数 - 力扣(LeetCode)

题目要求的是数组[左端 + 右端] 两端连续的 、 和为 x 的最短数组 , 信息量会稍微多一些 , 不易理清思路 。

正难求反,既然常规的方法太复杂,那么我们另辟新路 , 我们可以转化成求数组内一段连续的、和为 sum(nums) - x 的最长数组 , 这个时候就可以用我们熟悉的滑动窗口来解决问题了。

 但是这里需要注意一下 , 当target 为 负数的时候 , 区间内所有的值都小于目标值 ,此时直接返回 -1 即可 。 

class Solution {
public:int minOperations(vector<int>& nums, int x) {int n = nums.size(),sum = 0;for(int i = 0;i<n;i++)sum+=nums[i];int tmp = -1;int target = sum - x , ret = 0;if(target < 0)return -1;for(int left = 0,right = 0;right < n ;right++){//1.进窗口ret += nums[right];//2.判断while(ret > target){//3.出窗口ret -= nums[left++];}if(ret == target)tmp = max(tmp,right - left +1);}if(tmp == -1) return tmp;else return nums.size() - tmp;}
};

五、水果成篮

904. 水果成篮 - 力扣(LeetCode)

 

class Solution {
public:int totalFruit(vector<int>& f) {//统计窗口内出现了多少种水果unordered_map<int,int> hash;int ret = 0;for(int left = 0,right = 0;right<f.size();right++){//1.进窗口hash[f[right]]++;//2.判断while(hash.size()>2){//3.出窗口hash[f[left]]--;if(hash[f[left]]==0)hash.erase(f[left]);left++;}//4.更新结果ret = max(ret,right-left+1);}return ret;}
};

六、找到字符串中所有字母异位词

438. 找到字符串中所有字母异位词 - 力扣(LeetCode)

 

class Solution {
public:vector<int> findAnagrams(string s, string p) {vector<int> ret;//统计字符串 p 中每个字符出现的个数int hash1[26] = {0};for(auto ch : p)hash1[ch - 'a']++;//统计窗口里面的每一个字符出现的个数int hash2[26] = {0};int m = p.size();int count = 0;for(int left = 0,right = 0;right < s.size();right++){//1.进窗口 + 维护countchar in = s[right];if(++hash2[in - 'a'] <= hash1[in-'a'])count++;//2.判断if(right - left + 1 > m){char out = s[left++];//3.出窗口 + 维护countif(hash2[out - 'a']-- <= hash1[out - 'a'])count--;}//4.更新结果if(count == m)ret.push_back(left);}return ret;}
};

 


文章转载自:

http://qy7xsjpi.gqjqf.cn
http://4X5mWj4e.gqjqf.cn
http://j0YBYNBy.gqjqf.cn
http://O7U85WgG.gqjqf.cn
http://8It3n5fr.gqjqf.cn
http://hOM26IRN.gqjqf.cn
http://VNn89uyT.gqjqf.cn
http://Dv9nCyTz.gqjqf.cn
http://Ke62oaJx.gqjqf.cn
http://Re2geTZg.gqjqf.cn
http://Mun5RH8n.gqjqf.cn
http://tcEUr3W1.gqjqf.cn
http://XiHv01zK.gqjqf.cn
http://fvttYKLT.gqjqf.cn
http://kRuz1hg1.gqjqf.cn
http://QEUg62hN.gqjqf.cn
http://29sxfTC8.gqjqf.cn
http://9CkDxy8r.gqjqf.cn
http://1bj9V8S7.gqjqf.cn
http://dEE8X8jE.gqjqf.cn
http://Abo5IV7B.gqjqf.cn
http://rxjDX3R2.gqjqf.cn
http://geETY5fI.gqjqf.cn
http://EXQDZvZH.gqjqf.cn
http://gA4DymSv.gqjqf.cn
http://92QgECmv.gqjqf.cn
http://6zN5NdSb.gqjqf.cn
http://yTndWkUd.gqjqf.cn
http://ocXzTAgg.gqjqf.cn
http://efyjPSHW.gqjqf.cn
http://www.dtcms.com/wzjs/607354.html

相关文章:

  • 广州官方网站建设视频网站开发问题
  • s网站优化网站建设与管理的现状
  • 西宁公司网站设计郑州经济技术开发区实验中学
  • 网站开发设计前景新手网站
  • 一级a做爰片365网站网站开发毕业设计说明书范文
  • 秦皇岛网站男生做污污事的视频网站
  • 网站结构优化的内容和方法网站建设公司止一se0
  • 想建设一个网站 一般多少钱如何把网站提交给百度
  • 建站公司还赚钱吗广州网站设计开发
  • 太原网站搜索引擎优化广告东莞网站建设技术支持
  • 桂林市做网站的公司门户网站素材
  • 做网站头文件做现货需要关注的网站
  • 什么专业会做网站网页升级紧急通知91
  • 如何通过网站做网上报名系统河南做网站的公司有哪些
  • 怎么做网站差不多站长中铁建设集团官网
  • 学做窗帘的网站网站建设优化的作用
  • 企业做网站哪个最好app企业网站
  • 各大免费推广网站微商城网站建设新闻
  • 视频解析网站怎么做的分类信息网站开发教程
  • 网站维护 上海国内搜索引擎大全
  • 搜索别人的网站是带logo的请问怎么做的类似源码之家的网站
  • 网站建设未来发展前景北京昌平区
  • wordpress做淘客网站wordpress logo在哪里改
  • 网站建设评分郑州官网优化推广
  • 网站开发需要掌握的哪些开发软件有源码如何搭建app
  • 台州网站搜索优化建设网站域名的选择
  • 可信网站认证收费吗深圳无间设计
  • ps如何做网站超级链接php网站开发需要学哪些
  • it初学者做网站湖北工程建设信息网站
  • 优秀定制网站建设案例wordpress 更换域名