340. Longest Substring with At Most K Distinct Characters

https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/

class Solution {
    public int lengthOfLongestSubstringKDistinct(String s, int k) {
        int l = 0;
        int uniqueCnt = 0;
        int[] map = new int[128];
        int ans = 0;
        char[] input = s.toCharArray();
        int n = input.length;
        for (int r = 0; r < n; r++) {
            map[input[r]]++;
            if (map[input[r]] == 1) {
                uniqueCnt++;
            }
            while (uniqueCnt > k) {
                map[input[l]]--;
                if (map[input[l]] == 0) {
                    uniqueCnt--;
                }
                l++;
            }
            ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }
}

没啥要说的,主要是为下一道题铺垫,还有记得clarify string里是不是只有字母啥的

Last updated