当前位置: 首页 > news >正文

网站系统建设合同做读书笔记的网站

网站系统建设合同,做读书笔记的网站,网站建设加盟代理,沙井网站设计这里写目录标题 209.长度最小的子数组题目思路代码 3. 无重复字符的最长子串(medium)题目思路 11. 最大连续 1 的个数 III题目思路 1658. 将 x 减到 0 的最⼩操作数题目思路代码 904. 水果成篮题目思路代码 438.找到字符串中所有字母的异位词题目思路代码…

这里写目录标题

  • 209.长度最小的子数组
    • 题目
    • 思路
    • 代码
  • 3. 无重复字符的最长子串(medium)
    • 题目
    • 思路
  • 11. 最大连续 1 的个数 III
    • 题目
    • 思路
  • 1658. 将 x 减到 0 的最⼩操作数
    • 题目
    • 思路
    • 代码
  • 904. 水果成篮
    • 题目
    • 思路
    • 代码
  • 438.找到字符串中所有字母的异位词
    • 题目
    • 思路
    • 代码

209.长度最小的子数组

题目

在这里插入图片描述

思路

  1. 因为数组中的数字都是正数,所以我们可以利用单调性使用滑动窗口的方式来实现
  2. 用两个指针left和right维护一段区间 当right向右移动时,这个区间内的和增大,当left向右移动时,这个区间内的和减少,这就是这道题目的单调性,我们就可以利用单调性来解题

代码

class Solution {public int minSubArrayLen(int target, int[] nums) {int sum = 0;int ret = Integer.MAX_VALUE;for(int left = 0, right = 0; right < nums.length; right++){sum += nums[right];//如果窗口内元素大于target此时就要移动left指针,直到窗口内值小于target,并且过程中不断更新结果while(sum >= target){ret = Math.min(ret,right - left + 1);sum -= nums[left++];}}return ret == Integer.MAX_VALUE ? 0 : ret;}
}

3. 无重复字符的最长子串(medium)

题目

在这里插入图片描述

思路

  1. 利用滑动窗口维护一个区间来找最长字串,利用哈希表来检查是否有重复元素
  2. 创建left指针和right指针,right指针每次向后走,就将当前位置的字符放在哈希表中,如果,此时这个元素在哈希表中出现次数超过一次,就移动left指针,每次移动left指针都要将left指针所指向的位置的元素删除,直到这个元素只出现一次,再次移动right指针
class Solution {public int lengthOfLongestSubstring(String s) {int[] hash = new int[128];//数组模拟哈希表int ret = 0;char[] arr = s.toCharArray();for(int left = 0, right = 0; right < s.length(); right++){hash[arr[right]]++;//每次将right位置的元素放在哈希表中while(hash[arr[right]] > 1){//当放进去的元素重复时,就开始移动左指针删除做指针指向的元素hash[arr[left++]]--;}ret = Math.max(ret,right-left+1);}return ret;}
}

11. 最大连续 1 的个数 III

题目

在这里插入图片描述

思路

  1. 根据题意翻转0,我们可以将问题转化为数组中最长的不超过k个0的序列
  2. 此时根据滑动窗口就可以很好的解决这道题目
class Solution {public int longestOnes(int[] nums, int k) {int cnt = 0;int ret = 0;for(int left = 0,right = 0; right < nums.length; right++){//如果进窗口的元素是0,则0计数器+1if(nums[right] == 0){cnt++;}//此时窗口中0的个数超出了要求,移动左指针left调整窗口,使其符合题意while(cnt == k + 1){if(nums[left++] == 0){cnt--;}}ret = Math.max(ret,right-left+1);}return ret;}
}

1658. 将 x 减到 0 的最⼩操作数

题目

在这里插入图片描述

思路

  1. 这道题通过题意,可以转化为和为sum-x的最大子数组
  2. 使用滑动窗口来解决此题

代码

class Solution {public int minOperations(int[] nums, int x) {int sum = 0;for(int i = 0;i < nums.length; i++){sum += nums[i];}int k = sum - x;if(k < 0){return -1;}int ret = -1;sum = 0;for(int left = 0, right = 0; right < nums.length; right++){sum += nums[right];while(sum > k){sum -= nums[left++];}if(sum == k){ret = Math.max(ret,right - left + 1);}}if(ret == -1){return -1;}return nums.length - ret;}
}

904. 水果成篮

题目

在这里插入图片描述

思路

  1. 题目已经暗示我们使用滑动窗口来解决问题,把问题转化成最长的只有两种数字的字串
  2. 通过哈希表的方式来记录是否超出种类

代码

class Solution {public int totalFruit(int[] fruits) {Map<Integer,Integer> hash = new HashMap<>();int ret = 0;for(int left = 0, right = 0; right < fruits.length; right++){hash.put(fruits[right],hash.getOrDefault(fruits[right],0) + 1);while(hash.size() > 2){hash.put(fruits[left],hash.get(fruits[left]) -1);if(hash.get(fruits[left]) == 0){hash.remove(fruits[left]);}left++;}ret = Math.max(ret,right - left + 1);}return ret;}
}

438.找到字符串中所有字母的异位词

题目

在这里插入图片描述

思路

  1. 通过滑动窗口的方式,窗口大小恒为p字符串的长度,用哈希表分别存放两个字符串的每个字符,如果两个哈希表相同,则将这个窗口左下标放在结果集中

代码

class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> ret = new ArrayList<>();Map<Character,Integer> start = new HashMap<>();Map<Character,Integer> end = new HashMap<>();for(int i = 0; i < p.length(); i++){start.put(p.charAt(i),start.getOrDefault(p.charAt(i), 0) + 1);}for(int left = 0, right = 0; right < s.length(); right++){end.put(s.charAt(right),end.getOrDefault(s.charAt(right), 0) + 1);if(right - left + 1 == p.length()){if(start.equals(end)){ret.add(left);if(end.get(s.charAt(left)) == 1){end.remove(s.charAt(left));}else {end.put(s.charAt(left),end.getOrDefault(s.charAt(left), 0) - 1);}}else{end.put(s.charAt(left),end.getOrDefault(s.charAt(left), 0) - 1);if(end.get(s.charAt(left)) == 0){end.remove(s.charAt(left));}}left++;}}return ret;}
}
http://www.yayakq.cn/news/456058/

相关文章:

  • 建筑网站起名建设工程吗
  • 东莞定制网站建设网站建设制作优帮云
  • 韶关市网站建设公司建筑资建设库网站缺陷
  • 一家企业如何做网站推广上海市教育网官网
  • 建个网站需要多少钱新浪网站用什么语言做的
  • 中国站长站官网武进网站建设机构
  • 成都网站建设推广港哥熊掌号网网站制作
  • 建宣传网站可视化app开发工具安卓版
  • 北京市建设教育协会网站网站建设实训小结
  • 启动门户网站建设绵阳建网站
  • 028网站建设工作室wap购物网站源码
  • 吉林省住房建设厅网站asp 女性 美容 知识 网站 源码
  • 汇中建设 官方网站网站开发工作怎样
  • 建筑网站哪里找163免费企业邮箱
  • 一个网站建设的目标中国设计人才网
  • 网站界面切片做程序深圳优秀网站建设
  • 邢台装修网站建设表情制作器
  • 如何制作公司网站网页制作与网站建设填空题
  • 营销型网站建设公司方法和技巧外贸网站推广费用
  • 网站建设第一品牌免费网站代理访问
  • 公司网站建设属于什么职位电子商务网站建设要求
  • 网站如何做二维码开一个电商需要多少钱
  • 域名解析到网站需要怎么做企业网站建设制作公司
  • 建设银行重庆分行网站遵义市播州区住房和城乡建设局官方网站
  • 外贸网站域名赏析wordpress4.9.4环境要求
  • 做网站编程的待遇法治与安全做讲座网站
  • 心理咨询网站建设论文潍坊营销网站
  • 腾讯建设网站视频视频视频江苏网站设计公司电话
  • 去马来西亚做网站网站wordpress免费套餐内容
  • 山东建设监理协会网站无法登录做网站协议怎么签