蠕动区间(尺取法、双游标)是一个经典的优化算法。
我们以毛毛虫🐛举例说明

具体的,我们看题目

这一题,我们用暴力法,复杂度O(N^2)
先给出暴力法代码
- int ans=n+1;
- for(int tail=0;tail
- int sum=0;
- for(int head=tail;head
- sum+=x[head];
- if(sum>=m){
- ans=min(ans,head+1-tail);
- break;
- }
- }
- }
- cout<
我们看一下蠕动区间怎么写

上面有注释,大家看不明白就私信哦
收集三原色
这道题更难一点……

数据结构
- string x[N];
- map
int> cnt; - set
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
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<
希望这些对大家有用,三联,必回
-
相关阅读:
MyBatis的缓存
Day59 下一个更大元素Ⅱ + 接雨水
分享im即时通讯开发之WebSocket:概念、原理、易错常识
淘宝扭蛋机小程序:探索未知的惊喜之旅
代理服务器squid使用
【力扣SQL】几个常见SQL题
C语言习题练习8--扫雷游戏
Google Earth Engine ——GEE中常用的提示
Qt planeGame day10
React之组件实例的三大属性之rel
-
原文地址:https://blog.csdn.net/zhang040818/article/details/133882343
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU