2026.05.03
55.跳跃游戏1、int maxReach0; 表示最远能到达的距离2、for循环遍历每个nums[i]2.1 如果 imaxReach 说明当前i 无法到达直接return false2.2 maxReach Math.max(maxReach,inums[i])2.3 如果 maxReach nums.length-1 return true;3、for循环结束说明已经遍历到了nums.length-1。return true45.跳跃游戏Ⅱ目标求从下标0跳到最后一个下标最少需要跳几次。1、 int maxReach0; 表示最远能到达的距离。int step0;表示跳跃的次数。int end0;表示当前的边界如果iend说明需要进行下一次跳跃2、for循环遍历每个nums[i]。 inums.length-12.1 maxReach Math.max(maxReach,inums[i])2.2 if(i end) 说明要继续下一跳stemp;end maxReach;3、为什么是inums.length-1因为当inums.length-1的时候说明已经是最后一个节点了不需要再跳了763.划分字母区间1、第一次遍历统计每个字母出现的最后一个索引使用数组字母来替代哈希表arr[c-a] i;2、初始化变量int end 0;int start 0;3、第二次遍历进行区间划分end Math.max(end,arr[c-a]); 更新当前片段最远右边界if(i end) 说明已经到达右边界可以开始分割了res.add(end-start1);start i1;