七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

定长字串中元音的最大数目:滑动窗口

写作时间:2026-08-22 08:13:39

题目

给你字符串 s 和整数 k 。

请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。

英文中的 元音字母 为(a, e, i, o, u)。

链接

1456. 定长子串中元音的最大数目

思考

这道题上面可以直接暴力法直接拆掉,但是时间复杂度非常的高,不建议,可以参考双指针对他进行判别,跟进一步使用窗口


‍

class Solution {
    public int maxVowels(String s, int k) {
        int max = 0;
        int cur = 0;
        for (int i = 0;i < k;i++) {
            if (isVowels(s.charAt(i))) {
                cur ++;
            }
        }
        max = cur;

        for (int i = k;i < s.length();i ++) {
            if (isVowels(s.charAt(i))) {
                cur ++;
            }

            if (isVowels(s.charAt(i - k))) {
                cur --;
            }

            if (cur == k) return k;
            max = Math.max(max,cur);
        }
        return max;
    }

    private boolean isVowels(char s) {
        return s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u';
    }
}

‍

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents