C.滑动窗口-求子数组个数-越长越合法——3325. 字符至少出现 K 次的子字符串 I

题目链接:3325. 字符至少出现 K 次的子字符串 I(中等)

算法原理:

解法:滑动窗口

跟模板题基本一样👇

C.滑动窗口-求子数组个数-越长越合法------1358. 包含所有三种字符的子字符串数目(模板)

答疑

Q1:为什么只需判断进窗口元素出现的次数就可以呢?

因为只有进窗口的元素有可能次数超过K

Java代码:

java 复制代码
class Solution {
    public int numberOfSubstrings(String ss, int k) {
        int[] hash=new int[26];
        char[] s=ss.toCharArray();
        int ret=0,left=0;
        for(char c:s){
            //进窗口
            hash[c-'a']++;
            //出窗口
            while(hash[c-'a']>=k)
                hash[s[left++]-'a']--;
            //更新
            ret+=left;
        }
        return ret;
    }
}
相关推荐
NAGNIP6 小时前
万字长文!回归模型最全讲解!
算法·面试
知乎的哥廷根数学学派6 小时前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习·矩阵
码不停蹄Zzz7 小时前
C语言第1章
c语言·开发语言
666HZ6668 小时前
数据结构2.0 线性表
c语言·数据结构·算法
SmartRadio8 小时前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
余瑜鱼鱼鱼8 小时前
Java数据结构:从入门到精通(十二)
数据结构
西伯利亚狼_J20208 小时前
260109introduceEN
职场和发展
实心儿儿8 小时前
Linux —— 基础开发工具5
linux·运维·算法
charlie1145141919 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式
济61710 小时前
嵌入式C语言(第二期)
c语言