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

Peter算法小课堂—蠕动区间

蠕动区间

蠕动区间(尺取法、双游标)是一个经典的优化算法。

我们以毛毛虫🐛举例说明

具体的,我们看题目

例题

最小区间

 这一题,我们用暴力法,复杂度O(N^2)

先给出暴力法代码

int ans=n+1;
for(int tail=0;tail<n;tail++){int sum=0;for(int head=tail;head<n;head++){sum+=x[head];if(sum>=m){ans=min(ans,head+1-tail);break;}}
}
cout<<ans<<endl;

 我们看一下蠕动区间怎么写

上面有注释,大家看不明白就私信哦

收集三原色

这道题更难一点……

数据结构

string x[N];
map<string,int> cnt;
set<string> rgb;
rgb.insert("red");
rgb.insert("green");
rgb.insert("blue");

主体部分

int sum=0,ans=n+1;
int tail=0,head=0;
while(1){while(head<n&&sum<3){string color=x[head++];if(!rgb.count(color)) continue;++cnt[color];if(cnt[color]==1) sum++;}if(sum<3) break;ans=min(ans,head-tail);string color=x[tail++];if(!rgb.count(color)) continue;--cnt[color];if(cnt[color]==0) sum--;
}
cout<<ans<<endl;

希望这些对大家有用,三联,必回 

http://www.lryc.cn/news/199440.html

相关文章:

  • Vant和ElementPlus在vue的hash模式的路由下路由离开拦截使用Dialog和MessageBox失效
  • 上海市通过区块链技术攻关 构建数字经济可信安全技术底座
  • Java 面试题
  • layui 表格 展开
  • [尚硅谷React笔记]——第4章 React ajax
  • Richard Stallman 正在与癌症作战
  • MathType7.4最新免费版(公式编辑器)下载安装包附安装教程
  • 如何支持h.265视频
  • vue 放大镜(简易)
  • 【计算机网络】第一章——概述
  • vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标
  • LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)
  • 【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)
  • 父组件可以监听到子组件的生命周期吗?
  • [开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具
  • 【C++ Primer Plus学习记录】数组的替代品
  • JSP免杀马
  • 2023-10-16 node.js-调用python-记录
  • Kotlin 设置和获取协程名称
  • awk命令的使用
  • 【面试系列】Vue
  • 揭开MyBatis的神秘面纱:掌握动态代理在底层实现中的精髓
  • 结合领域驱动设计,理解TOGAF之架构方法论
  • Vue-vue项目Element-UI 表单组件内容要求判断
  • 【试题027】C语言宏定义小例题
  • 解决 sharp: Installation error: unable to verify the first certificate
  • 【Java】Java实现100万+ 的高并发、高性能设计
  • linux系统下,在vscode的命令行中调试python文件
  • DFS(分布式文件系统)与 DFSR(分布式文件系统复制)的区别
  • 丈母娘说:有编制的不如搞编程的