leethot100滑动窗口想用数组实现hashmap中字典的效果踩坑

📅 2026/7/13 10:06:21
leethot100滑动窗口想用数组实现hashmap中字典的效果踩坑
class Solution { public int lengthOfLongestSubstring(String s) { int[] index new int[256]; // 默认初始值全部为0 int max 0; int left 0; for (int i 0; i s.length(); i) { char ch s.charAt(i); // index[ch]该字符上一次出现位置 // 只有旧下标在当前窗口内left才移动 if(index[ch] left){ left index[ch] 1; } index[ch] i; // 更新为最新下标 max Math.max(max, i - left 1); } return max; } }发现测试示例一直报错在s 的时候应该返回1但是测试中一直返回0随后检查发现Java 里int[]默认值是 0数组还没有存入字符时里面的值也是 0。 当字符第一次出现在索引i 0时index[ch]0left0index[ch] left条件成立代码误以为这个字符之前出现过错误将left 1。随后将数组重新初始化//全部初始化为‑1表示还未出现过for(int i 0; i 256; i){index[i] -1;