kk
This commit is contained in:
47
src/main/java/com/dota/slidingWindow/_1297/Solution.java
Normal file
47
src/main/java/com/dota/slidingWindow/_1297/Solution.java
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user