利用滑动窗口来解
package lyzz.leetcode003;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String str = "abba";
int nums = SlidingWindow(str);
System.out.println(nums);
}
public static int SlidingWindow(String s) {
int n = s.length(), ans = 0;
Map<Character, Integer> map = new HashMap<>();
for (int end = 0, start = 0; end < n; end++) {
char alpha = s.charAt(end);
if (map.containsKey(alpha)) {
start = Math.max(map.get(alpha), start);
}
ans = Math.max(ans, end - start + 1);
map.put(s.charAt(end), end + 1);
}
return ans;
}
}
本文深入探讨了滑动窗口算法的实现,通过具体示例解释了如何使用该算法解决字符串匹配问题。文章提供了完整的Java代码示例,展示了如何利用HashMap进行高效的状态跟踪,以及如何动态调整窗口大小以找到最优解。
3359

被折叠的 条评论
为什么被折叠?



