This commit is contained in:
kkunkka
2025-03-24 15:04:48 +08:00
parent ae4889d8df
commit f171e6504c

View File

@@ -0,0 +1,47 @@
package com.dota.slidingWindow._1297;
import java.util.HashMap;
class Solution {
public int maxFreq(String s, int maxLetters, int minSize, int maxSize) {
int max = 0;
var dp = new int[26];
int cnt = 0;//字母数
var map = new HashMap<String, Integer>();//出现数量
for (int i = 0; i < minSize; i++) {
int t = s.charAt(i) - 'a';
if (dp[t] == 0) {
cnt++;
}
dp[t]++;
}
if (cnt<=maxLetters) {
map.put(s.substring(0, minSize), 1);
max = 1;
}
for (int i = minSize; i < s.length(); i++) {
int t = s.charAt(i-minSize) - 'a';
if (dp[t] == 1) {
cnt--;
}
dp[t]--;
t = s.charAt(i) - 'a';
if (dp[t] == 0) {
cnt++;
}
dp[t]++;
if (cnt<=maxLetters) {
var tmp = s.substring(i-minSize, i+1);
map.put(tmp, map.getOrDefault(tmp, 0)+1);
max = Math.max(max, map.get(tmp));
}
}
return max;
}
}