廊坊做网站厂商定制,wordpress cdn图片加速,高中信息技术课网站怎么做,skech做网站交互流程文章目录 题目方法一#xff1a;滑动窗口方法二#xff1a; 题目 题目的意思就是#xff1a;找至多包含两种元素的最长子串#xff0c;返回其长度
方法一#xff1a;滑动窗口
class Solution {
// 滑动窗口 找至多包含两种元素的最长子串#xff0c;返回其长度public … 文章目录 题目方法一滑动窗口方法二 题目 题目的意思就是找至多包含两种元素的最长子串返回其长度
方法一滑动窗口
class Solution {
// 滑动窗口 找至多包含两种元素的最长子串返回其长度public int totalFruit(int[] fruits) {int left 0;MapInteger,Integer map new HashMap();int res 0 ;for(int right 0; rightfruits.length ; right){if(!map.containsKey(fruits[right])){//判断 当前元素是否在map中 在就在原先的基础上1 不在就创建 初始value 1map.put(fruits[right],1);}else {map.put(fruits[right], map.get(fruits[right])1);}while(map.size() 2){//一旦哈希表大小大于2 说明出现了第三个数 需要一次根据left指针删除map中的值直到删除到0 将键也删除最后在根据left和 right位置计算resmap.put(fruits[left],map.get(fruits[left])-1);if(map.get(fruits[left]) 0) map.remove(fruits[left]);left;}res Math.max(res,right - left1);}return res;}
}方法二