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

day38 滑动窗口

1. 滑动窗口

应用场景: 满足xxx条件(计算结果、出现次数、同时包含)
关键词:最长最短子串无重复等等
1)最长
左右指针在起始点,R 向右依次滑动循环;
如果: 窗内元素满足条件,R向右扩大窗口,并更新最优结果;
如果:窗内元素不满足条件,L向右缩小窗口;
2)最短
左右指针在起始点,R 向右依次滑动循环;
如果: 窗内元素满足条件,L向右缩小窗口,并更新最优结果;
如果:窗内元素不满足条件,R向右扩大窗口;
代码模板:

最长
初始化 left right result bestResult
while(右指针没有到结尾){窗口扩大,加入righjt对应的元素,更新当前的resultwhile(result不满足要求){窗口缩小,移除left对应元素,left右移}更新最优结果 bestResultright++;
}
返回bestResult;最短
初始化 left right result bestResult
while(右指针没有到结尾){窗口扩大,加入righjt对应的元素,更新当前的resultwhile(result满足要求){更新最优结果 bestResult窗口缩小,移除left对应元素,left右移}right++;
}
返回bestResult;

2.例题:
在这里插入图片描述
设置左标识跟右标识,还有same(无重复时置0,有重复时置1)

此题设置两个循环,第一个循环遍历整个字符串,第二个循环遍历并判断无重复子串。
当left<right时,进行第二个for循环
令j=left,不能超过右标识right,并将same置0;

int lengthOfLongestSubstring(char * s){int i,j,max=0;int left=0,right=0;int same=0;int len=strlen(s);for(i=0;i<len;i++){if(left<right){same=0;for(j=left;j<right;j++){if(s[j]==s[right]){//若有重复字符,将same置1并跳出循环;same=1;break;}}if(same==1){//若有重复字符将left右移left=j+1;}}max=max<(right-left+1)?(right-left+1):max;right++;//right右移继续判断}return max;
}
int longestOnes(int* nums, int numsSize, int k){//挑出连续最长的1的个数int left = 0, lsum = 0, rsum = 0;int ans = 0;for (int right = 0; right < numsSize; right++) {rsum += 1 - nums[right];while (lsum < rsum - k) {// l + r < k lsum += 1 - nums[left];left++;}ans = fmax(ans, right - left + 1);}return ans;
}
http://www.lryc.cn/news/116956.html

相关文章:

  • 翻出了我当时学习的笔记来了html
  • vuejs 设计与实现 - 快速diff算法
  • webpack基础知识七:说说webpack proxy工作原理?为什么能解决跨域?
  • nginx负载均衡(nginx结束)
  • Git与Github常用方法
  • Centos7离线安装MySQL8
  • AWD攻防学习总结(草稿状态,待陆续补充)
  • 扫雷(超详解+全部码源)
  • python生成exe脚本全过程
  • 【机器学习1】什么是机器学习机器学习的重要性
  • 立即开始使用 3D 图像
  • 鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统em
  • 《向量数据库》——怎么安装向量检索库Faiss?
  • 学习pytorch 2 导入查看dataset
  • 三、kubeadm部署单Master节点kubernetes集群
  • js-6:typeof和instanceof的区别
  • SQL SERVER 异地备份到远程共享文件夹异常处理
  • 服务器数据恢复-RAID5上层Hyper-V虚拟机数据恢复案例
  • Easy Rules规则引擎(1-基础篇)
  • Linux 上安装部署Nacos
  • 电动机的启动
  • python性能分析,logging性能,print性能,文件写入性能对比
  • [GIN-debug] [ERROR] listen tcp: address 8080: missing port in address
  • PHP codeigniter4 搭配Nginx
  • AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶)
  • .netcore下grpc概述
  • Address already in use
  • ♥ vue中$set用法详细讲解
  • 岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测
  • 企业权限管理(六)-订单详情