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

滑动窗口leetcode 209和76

一、leetcode 209. 长度最小的子数组

代码:

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n = nums.size();int left = 0;int sum = 0;int res = 100001;for(int right = 0;right <n;right++){sum += nums[right];while(sum >= target){res = min(res,right-left+1);sum -= nums[left];left++;}}if(res == 100001)res = 0;return res;}
};

二、leetcode76. 最小覆盖子串

代码:

class Solution {
public:string minWindow(string s, string t) {unordered_map<char,int> t_map;unordered_map<char,int> window_map;for(char ch:t){if(t_map.contains(ch)){t_map[ch]++;}else{t_map[ch] = 1;}window_map[ch] = 0;}int s_len = s.size();int left = 0;int ans_left = -1;int ans_len = INT_MAX;for(int right = 0; right <s_len;right++){if(!window_map.contains(s[right]))continue;window_map[s[right]]++;while(check(t_map,window_map) && left <= right){if(right -left+1 <ans_len){ans_len = right -left +1;ans_left = left;}if(t_map.contains(s[left]))window_map[s[left]]--;left++;}}if(ans_left == -1) return "";return s.substr(ans_left,ans_len);}bool check(unordered_map<char,int>& t_map,unordered_map<char,int>& window_map){for(auto p:t_map){if(window_map[p.first] < t_map[p.first])return false;}return true;}
};

class Solution {
public:string minWindow(string s, string t) {unordered_map<char,int> t_map;unordered_map<char,int> window_map;for(char ch:t){if(t_map.contains(ch))t_map[ch]++;elset_map[ch] = 1;}int s_len = s.size();int left = 0;int window_valid_char_cnt = 0;string ans;for(int right = 0; right <s_len;right++){if(++window_map[s[right]] <= t_map[s[right]])window_valid_char_cnt++;while(window_map[s[left]] > t_map[s[left]]){window_map[s[left]]--;left++;}if(window_valid_char_cnt == t.size()){if(ans.empty() || ans.size() > right-left+1)ans = s.substr(left,right-left+1);}}return ans;}
};

相关文章:

  • PostgreSQL自定义函数
  • 特殊运算符详解:身份运算符、成员运算符与三目运算符
  • Ghost-Downloader-3开源下载软件,使用 Python 构建的跨平台 Fluent-Design AI-boost 多线程下载器
  • 使用mybatis实例类和MySQL表的字段不一致怎么办
  • 文件操作--文件下载读取漏洞
  • Fedora升级Google Chrome出现GPG check FAILED问题解决办法
  • 【Linux】关于虚拟机
  • 【AI提示词】奥卡姆剃刀思维模型专家
  • Semantic Kernel 快速入门
  • 神州趣味地名-基于天地图和LeafLet的趣味地名探索
  • C++ 的 lambda 表达式
  • 自制qrcode二维码生成扫码美化
  • 第6篇:EggJS数据库操作与ORM实践
  • 组件通信-props
  • BLE协议栈的解析
  • 4.3 random模块
  • 中小企业MES系统详细设计
  • 低代码/AI是否会取代前端开发?
  • 倒排索引与数据库索引
  • 小刚说C语言刷题—1018三角形类别
  • 国家能源局:鼓励各地探索深远海、沙戈荒等可再生能源制氢场景
  • 全红婵/陈芋汐夺得跳水世界杯总决赛女子双人10米台冠军
  • 刘国中:毫不松懈巩固拓展脱贫攻坚成果,全力以赴抓好农业防灾减灾工作
  • 广东省副省长刘红兵任湖南省委常委、宣传部部长
  • 厚重与潮流交织,淮安展现“运河之都”全新城市想象
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高