力扣hot100【滑动窗口】

3.无重复字符的最长子串

双指针维护无重复字符的区间,更新长度。

c++ 复制代码
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        unordered_map<char,int>mp; 
        int n=s.size();
        int ans=0;
        for(int i=0,j=0;j<n;j++){
            mp[s[j]]++;
            while(mp[s[j]]>1){
                mp[s[i]]--;
                i++;
            }
            ans=max(ans,j-i+1);
        }
        return ans;
    }
};

438.找到字符串中所有字母异位词

字母异位词,长度相等。以目的字符串为长度去原串中遍历,双指针维护长度,cnt数组统计字符出现次数

c++ 复制代码
class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        int n=s.size();
        int m=p.size();
        array<int, 26> cnt_p{}; 
        array<int, 26> cnt_s{};
        vector<int>ans;
        for(char c:p){
            cnt_p[c-'a']++;
        }
        for(int i=0;i<n;i++){
            cnt_s[s[i]-'a']++;
            if(i-m+1<0){
                continue;
            }
            if(cnt_p==cnt_s){
                ans.push_back(i-m+1);
            }
            cnt_s[s[i-m+1]-'a']--;
        }
        return ans; 
    }
};
相关推荐
Omics Pro7 分钟前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
JAVA社区7 分钟前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
voidmort15 分钟前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域1 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
QiLinkOS2 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
小白兔奶糖ovo3 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
xiaoxiaoxiaolll3 小时前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
Peter·Pan爱编程3 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
-To be number.wan3 小时前
算法日记 | 暴力枚举
学习·算法
s_w.h3 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash