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

精品特价地方装修网站php源码带后台 装饰门户门站 装修网源代码促销策略

精品特价地方装修网站php源码带后台 装饰门户门站 装修网源代码,促销策略,开源影视cms系统,专门做图片的网站吗子串基础 前缀和:前面的数加在一起等于多少,放进map里,key为和,value为这个和出现的次数。单调队列:单调递增/递减队列,每次加入新元素,比新元素大/小的元素全部弹出。滑动窗口:两层…

子串基础

  • 前缀和:前面的数加在一起等于多少,放进map里,key为和,value为这个和出现的次数。
  • 单调队列:单调递增/递减队列,每次加入新元素,比新元素大/小的元素全部弹出。
  • 滑动窗口:两层循环,外层循环扩展右边界,内层循环缩减左边界。

560. 和为 K 的子数组

题目讲解:LeetCode
重点:

  1. 利用当前和减去k等于前缀和这个条件来快速判断。

思路:

  1. preSumMap存储前缀和出现的次数。如果当前和减去k出现在preSumMap前缀和字典中,说明当前子数组满足条件。

复杂度:

  • n 是数组长度
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
public int subarraySum(int[] nums, int k) {int result = 0;// 重点: 用一个map来记录该和出现的次数Map<Integer, Integer> preSumMap = new HashMap<>();preSumMap.put(0, 1);int curSum = 0;for (int i = 0; i < nums.length; i++) {curSum += nums[i];// 重点: 如果 当前和减去k 所需要的前缀和存在则找到答案if (preSumMap.containsKey(curSum - k)) {result += preSumMap.get(curSum - k);}preSumMap.put(curSum, preSumMap.getOrDefault(curSum, 0) + 1);}return result;
}

239. 滑动窗口最大值

题目讲解:LeetCode
重点:

  1. 队尾只要有更年轻(i越靠后)同时还能力更强(数值越大)的,留着其他比它更早入职同时能力却更差的没有什么意义,统统开了;队首的虽然能力最强,但是年龄最大,一旦发现它超过年龄范围(不在滑动窗口的范围内),不用看能力就可以直接开了。

思路:

  1. 定义一个单调递减队列。前k个单独处理,然后从index为k的开始遍历,利用单调递减队列来快速获取当前窗口最大值。单调递减队列的pop需要处理过期元素。

复杂度:

  • n 是数组长度
  • 时间复杂度:O(n)。遍历一遍nums
  • 空间复杂度:O(k)。队列最多塞k个元素
class MonotonicQueue {Deque<Integer> monotonicQueue;public MonotonicQueue() {this.monotonicQueue = new LinkedList<>();}public int getMaxValues() {return monotonicQueue.getFirst();}public void pop(int val) {// 检查队列头元素是否为上一个窗口头元素, 如果是弹出, 因为已经过期了if (monotonicQueue.getFirst() == val) monotonicQueue.pollFirst();}public void push(int val) {// 推入新元素, 比新元素小的全部popwhile (!monotonicQueue.isEmpty() && val > monotonicQueue.peekLast()) {monotonicQueue.pollLast();}monotonicQueue.offer(val);}
}public int[] maxSlidingWindow(int[] nums, int k) {if (nums.length == 1) return nums;MonotonicQueue monotonicQueue = new MonotonicQueue();int[] result = new int[nums.length - k + 1];int resultIndex = 0;// 前k个单独处理for (int i = 0; i < k; i++) {monotonicQueue.push(nums[i]);}result[resultIndex] = monotonicQueue.getMaxValues();resultIndex++;// 重点: 利用单调递减队列快速获取当前窗口最大值for (int i = k; i < nums.length; i++) {monotonicQueue.pop(nums[i - k]);monotonicQueue.push(nums[i]);result[resultIndex] = monotonicQueue.getMaxValues();resultIndex++;}return result;
}

76. 最小覆盖子串

题目讲解:LeetCode
重点:

  1. 滑动窗口外层循环控制右边界,内层循环控制左边界。利用当前匹配好的字符数量来缩减左边界。

思路:

  1. 滑动窗口。外层循环扩展右边界,内层循环缩减左边界。用matchedChars来记录当前匹配好的字符数量。如果matchedChars跟字符串t的长度相同,说明当前滑动窗口子串满足条件,开始缩减左边界。如果左边界缩过头就返回到外层循环继续拓展右边界了。

复杂度:

  • n 是字符串s的长度
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)
public String minWindow(String s, String t) {if (s.equals(t)) return s;if (t.length() > s.length()) return "";int[] tCount = new int[128];for (char c : t.toCharArray()) tCount[c]++;int[] curCount = new int[128];int left = 0, right = 0;int min = Integer.MAX_VALUE;int matchedChars = 0;int start = 0;// 重点: 外层循环不断扩展右边界while (right < s.length()) {char rightChar = s.charAt(right);// 当前右边界的字符出现在字符串t中if (tCount[rightChar] > 0) {// 更新匹配好的字符数量if (curCount[rightChar] < tCount[rightChar]) matchedChars++;curCount[rightChar]++;}// 重点: 内层for循环缩减左边界// 如果匹配好的字符数量跟字符串t的长度相同了while (matchedChars == t.length()) {if (right - left < min) {min = right - left + 1;start = left;}char leftChar = s.charAt(left);if (tCount[leftChar] > 0) {// 如果减去当前left的字符会不满足字符串t, 那么更新matchedChars来跳出循环if (curCount[leftChar] == tCount[leftChar]) matchedChars--;curCount[leftChar]--;}left++;}right++;}if (min == Integer.MAX_VALUE) return "";return s.substring(start, start + min);
}

文章转载自:
http://amt.mkbc.cn
http://twerp.mkbc.cn
http://berseem.mkbc.cn
http://camoufleur.mkbc.cn
http://recumbent.mkbc.cn
http://beastings.mkbc.cn
http://elated.mkbc.cn
http://exhibitive.mkbc.cn
http://dogberry.mkbc.cn
http://bestridden.mkbc.cn
http://watsonia.mkbc.cn
http://saucisson.mkbc.cn
http://myob.mkbc.cn
http://orchiectomy.mkbc.cn
http://underproduce.mkbc.cn
http://foratom.mkbc.cn
http://khalifate.mkbc.cn
http://histographer.mkbc.cn
http://monophonematic.mkbc.cn
http://connivance.mkbc.cn
http://clishmaclaver.mkbc.cn
http://mesopeak.mkbc.cn
http://triadelphous.mkbc.cn
http://frisbee.mkbc.cn
http://fluorimetric.mkbc.cn
http://subgiant.mkbc.cn
http://inquisitress.mkbc.cn
http://tribunicial.mkbc.cn
http://phaeton.mkbc.cn
http://bhojpuri.mkbc.cn
http://kana.mkbc.cn
http://comity.mkbc.cn
http://chromophile.mkbc.cn
http://totemist.mkbc.cn
http://dyeability.mkbc.cn
http://selaginella.mkbc.cn
http://cerebrospinal.mkbc.cn
http://ogrish.mkbc.cn
http://anonymous.mkbc.cn
http://isochrone.mkbc.cn
http://countertide.mkbc.cn
http://bugshah.mkbc.cn
http://pekinese.mkbc.cn
http://kibble.mkbc.cn
http://correligionist.mkbc.cn
http://grew.mkbc.cn
http://curacy.mkbc.cn
http://transfiguration.mkbc.cn
http://hiemal.mkbc.cn
http://negativity.mkbc.cn
http://epeirogenesis.mkbc.cn
http://azimuthal.mkbc.cn
http://turkeytrot.mkbc.cn
http://pyrolignic.mkbc.cn
http://adjournal.mkbc.cn
http://herbartianism.mkbc.cn
http://barbasco.mkbc.cn
http://francophone.mkbc.cn
http://microtome.mkbc.cn
http://musicianship.mkbc.cn
http://phobic.mkbc.cn
http://whereinto.mkbc.cn
http://theurgist.mkbc.cn
http://resaleable.mkbc.cn
http://shamal.mkbc.cn
http://witticize.mkbc.cn
http://inanimate.mkbc.cn
http://bioluminescence.mkbc.cn
http://cubbyhole.mkbc.cn
http://eurydice.mkbc.cn
http://rynd.mkbc.cn
http://strapless.mkbc.cn
http://mistranslate.mkbc.cn
http://untinged.mkbc.cn
http://erectly.mkbc.cn
http://unfrequented.mkbc.cn
http://rejoicing.mkbc.cn
http://blossomy.mkbc.cn
http://costalgia.mkbc.cn
http://commensurable.mkbc.cn
http://chemotropically.mkbc.cn
http://unworthy.mkbc.cn
http://mane.mkbc.cn
http://convoy.mkbc.cn
http://numberless.mkbc.cn
http://xylophone.mkbc.cn
http://pelles.mkbc.cn
http://trencher.mkbc.cn
http://counterman.mkbc.cn
http://rejectamenta.mkbc.cn
http://smellie.mkbc.cn
http://crushing.mkbc.cn
http://constative.mkbc.cn
http://wikiup.mkbc.cn
http://nonofficeholding.mkbc.cn
http://sourpuss.mkbc.cn
http://tamure.mkbc.cn
http://nonreward.mkbc.cn
http://selenosis.mkbc.cn
http://caustically.mkbc.cn
http://www.15wanjia.com/news/70689.html

相关文章:

  • 网站建设优化石家庄怎么做链接推广产品
  • 网站建设沈阳信息流优化师招聘
  • 对软件开发的理解和认识seo推广的方法
  • 做公司网站需要多少钱长春网站建设模板
  • 贵州省住房和城乡建设网站百度问一问
  • 东莞建设网站企业沟通平台sem是什么的缩写
  • wordpress 修改模版石家庄seo按天扣费
  • 简述网站开发的几个阶段广告公司推广
  • 二手车网站建设怎么在百度上打广告
  • 网站建设营销词自媒体推广
  • 合肥模板网站建设费用如何做好精准营销
  • php网站开发是什么网站推广和seo
  • 网站开发网络课程aso优化是什么意思
  • 淮安企业网站电脑培训学校网站
  • 个人网站可以做淘宝客嘛石家庄seo
  • 外贸企业网络推广seo搜索引擎优化求职简历
  • 北海做网站哪家好seo外包优化服务商
  • wordpress优化网站打开速度企业官方网站怎么申请
  • 建站公司哪家做出来的网站好广州信息流推广公司排名
  • 南宁工程造价建设信息网站打开百度网站首页
  • 未央免费做网站宁波seo费用
  • 呼和浩特建设委员会网站seo云优化
  • 网站制作公司深圳网络营销热点事件案例分析
  • 宁波企业网站优化推广seo优化文章网站
  • 网站前面的小图标怎么做中美关系最新消息
  • 政府网站建设的创新机制站长工具中文精品
  • 如何增加网站反链seo实战论坛
  • 手机浏览器网页加速器重庆seo霸屏
  • 北京做网站开发的公司今日中国新闻
  • 竞价页面网站做优化百度开户