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

2025年11月25日

2025年11月25日

一.滑动窗口专题:

image

image

class Solution {
public:vector<int> findAnagrams(string s, string p) {vector<int> ans; // 记录满足条件的起点。//异位词就是不考虑字母顺序,所以只需要统计每个字符串内个字母个数,如果相同则是异位词array<int, 26> cnt_s;//统计s中子串array<int, 26> cnt_p;//统计p串,滑动窗口for (int i = 0; i < p.size(); i++) {cnt_p[p[i] - 'a']++;}for (int right = 0; right < s.size(); right++) { // 滑动窗口右边界int left = right - p.size() + 1;//左边界cnt_s[s[right] - 'a']++;if (left < 0) { // 窗口大小未达到p的大小continue;}if (cnt_p == cnt_s) {ans.push_back(left);}cnt_s[s[left] - 'a']--;//窗口满了就退出左边一格}return ans;}
};

用array不直接用数组例如int a[ ]因为不能直接比较两个数组是否一样,所以用array 

 

image

image

方法一:暴力-->超时

class Solution {public:int lengthOfLongestSubstring(string s) {int n=s.size();vector<vector<bool>>flag;//flag[i][j]=true表示s[i->j]是无重复字符的,利用动态规划思想for(int i=0;i<n;i++){vector<bool>a;for(int j=0;j<n;j++){a.push_back(false);//默认都是重复字符}flag.push_back(a);}for(int i=0;i<n;i++){flag[i][i]=true;//单个字符一定不重复}int ans=0;for(int i=0;i<n;i++){for(int j=i;j<n;j++){bool f=true;for(int k=j-1;k>=i;k--){if(s[k]==s[j]){f=false;}}//如果无重复就更新if(j==0)flag[i][j]=true;else if(flag[i][j-1]&&f==true)    flag[i][j]=true;if(flag[i][j]==true){//更新答案ans=max(ans,j-i+1);}}}return ans;}
};

方法二:滑动窗口+哈希表

对于无重复字符串可采用哈希表数据结构!

 

class Solution {public:int lengthOfLongestSubstring(string s) {unordered_set<char>a;//哈希表int ans=0;int right=-1;//右边界for(int i=0;i<s.size();i++){if(i!=0)   {a.erase(s[i-1]);//滑动窗口左边界向右收缩一格,从哈希表里删除s[i-1]}//以当前i为左边界,右边界right一直向右直到出现重复元素while(right+1<s.size()&&a.count(s[right+1])==0){a.insert(s[right+1]);right++;}ans=max(ans,right-i+1);}return ans;}
};

 

http://www.jsqmd.com/news/50886/

相关文章:

  • 2025年节油的轮胎推荐:官方TOP10低滚阻榜单揭秘
  • 基于 Vue3 及TypeScript 项目后的总结 - 详解
  • 慢就是快 用在生活中
  • 102302116_田自豪_作业3
  • 计你太美
  • 畅通工程 最小生成树
  • Oracle数据库物理备份与恢复实战指南
  • 实用指南:Kafka面试精讲 Day 30:Kafka面试真题解析与答题技巧
  • 2025年比亚迪汉更换轮胎推荐:专业TOP5排名权威发布
  • 2025年大众帕萨特更换轮胎推荐:官方权威指南深度解析
  • 2025-11-25 ZYZ28-NOIP模拟赛-Round9 hetao1733837的record
  • 学习02
  • Python稳定ABI未来发展与接口机制详解
  • 2025 人事管理工具选型:不同方案优劣势测评,中小企业闭眼抄作业
  • NOIP2025游记/OI生涯回忆
  • 2025年大众途观L更换轮胎推荐:五大专业品牌最新推荐
  • 详细介绍:Python之aedev-setup-project包语法、参数和实际应用案例
  • 树上背包优化
  • 2025年11月十大效果图公司客观评价:详实数据构建的推荐榜单
  • 2025年11月十大效果图公司推荐榜单:用户口碑评价与性能参数对比
  • Tarjan算法总结
  • 【CV】【IRSRMamba】basicSR库
  • 2025年11月十大效果图公司推荐榜单:专业分析与权威评测对比
  • 2025 年 11 月管道更換服務權威推薦榜:專業施工與高效維修,涵蓋老舊破損無縫防腐耐高溫管道更換,包括自來水消防燃氣排水污水工業通風等各類室內外場景
  • L12_自定义接口与权限验证_从零开始
  • python environment settings
  • 2025 年 11 月靶材廠家權威推薦榜:濺射/磁控濺射/旋轉靶材,ITO/半導體/光學鍍膜,陶瓷/金屬/鈦/鋁/銅/鎢/鉬/鉭/矽/合金/稀土靶材精選,工藝精湛與創新應用深度解析
  • 2025 年 11 月高壓清洗服務廠家推薦排行榜,管道/下水道/污水管/市政管道高壓清洗,化糞池/隔油池/污水池專業清洗,家庭/商鋪/小區/工廠高效深度清潔首選!
  • 如何在C++中实现面向对象编程?
  • 一物一码赋能全链路管控,二脉科技互动溯源系统引领行业新生态 !