自己怎么做搬家网站,提高工作效率总结心得,羊了个羊开发公司,江苏网站建设公司哪家好第一题 #xff1a; 
209. 长度最小的子数组 有上题可知#xff0c;我们会采用双指针和单调性的思路来解决 我们本题采用左右双指针从数组的0位置同向前进#xff0c;所以将此类模型称为滑块#xff1b; 步骤思路如下#xff1a; 步骤一#xff1a; 定义所有双指针都指向…第一题  
209. 长度最小的子数组 有上题可知我们会采用双指针和单调性的思路来解决         我们本题采用左右双指针从数组的0位置同向前进所以将此类模型称为滑块 步骤思路如下 步骤一         定义所有双指针都指向数组的0号位置 步骤二数组进窗口         右指针开始向右移动  步骤三判断是否数组进窗口或者出窗口         当当前窗口中的数字sum小于t时右指针继续向右移动直到数组之和大于等于t          如上图所示当前的左指针向右移动将左指针之前所指的元素退出窗口  此时重复上述的操作直到right指针到达数组的最右端 同时我们每一次在判断sum和要要求值之后都要更新len变量的结果         代码如下所示 class Solution {public int minSubArrayLen(int target, int[] nums) {int n  nums.length,sum  0,lenght  Integer.MAX_VALUE;for(int left  0,right  0;right  n;right){sum nums[right];while(sum  target){lenght  Math.min(lenght,(right-left1));sum -nums[left];left ;}}return lenght  Integer.MAX_VALUE ? 0:lenght;}
} 
第二题 
3. 无重复字符的最长子串 如上题所示         本题采用滑块的相关知识点如上题故事 本题主要会采用如下的创新点  //把字符串变成字符数组,s1里面的每一个元素都是每一个字符的ascall值     char[] s  ss.toCharArray(); //用数组模拟哈希表 //即用数组的下标为0的字符来表示ascall值为1 的数组。。。 //用数组里面的数字来表示该字符在hash值里面出现的次数     int[] hash  new int[128]; 用ascall值来映射数组中的字符同时用数组来类似于hash表当hash表中存放相应字符的出现次数每次有相应的字符进入滑块该字符的出现次数加一当该hash中相应的位置如果存放的数值大于一时则滑块中有重复的字符应该采取进一步的措施 解题步骤如下 步骤一         定义所有双指针都指向数组的0号位置 步骤二数组进窗口         让字符开始进入hash表该数组存放的hash表的位置上数据1 判断当右指针所指的hash表中数据1时我们要移动左指针将之前进入到窗口里面的元素出去同时hash表中的数据--         同时每一次元素出窗口之后要更新窗口长度并记录在案 代码如下所示 class Solution {public int lengthOfLongestSubstring(String ss) {//把字符串变成字符数组,s1里面的每一个元素都是每一个字符的ascall值char[] s  ss.toCharArray();//用数组模拟哈希表//即用数组的下标为0的字符来表示ascall值为1 的数组。。。//用数组里面的数字来表示该字符在hash值里面出现的次数int[] hash  new int[128];int n  s.length;int  res   0;for(int left  0,right  0;right  n;){hash[s[right]] ;while(hash[s[right]]  1){hash[s[left]] --;left ;res Math.max(res,right-left1); }res Math.max(res,right-left1);right;} return res;}
} 
ps本次的内容就到这里了如果对你有所帮助的话就请一键三连哦文章图片是我喜欢的xox在这里给大家安利一下哦