Leetcode#滑动窗口
看这个题真好看
机器学习+深度学习+leetcode+随时准备转行
展开
-
Leetcode76覆盖最小子串(都说是魔板操作)
方法1: 在这里插入代码片原创 2019-10-20 11:57:23 · 68 阅读 · 0 评论 -
Leetcode438找字符串的字母异构词
方法1:用一个26个长度的int数组表示p串字符出现的次数(map也行,大多数是用map的),从时间考虑的话用int数组,然后窗口的i,j指针指向第一个元素,j向右走,用一个计数器标记如果map中元素用了 class Solution { List<Integer> res=new ArrayList(); public List<Integer> find...原创 2019-10-19 12:33:41 · 304 阅读 · 0 评论 -
Leetcode795(不是滑动窗口但是可以用吧,虽然我没写出了)
就是统计以每个节点结尾的满足需求的。居然是结尾,不是起始,而且从-1开始,这都是点,记住 class Solution { public int numSubarrayBoundedMax(int[] A, int L, int R) { //思想就是如果当前节点在l到r之间,那么所有以他结尾的都是可以的,然后如果小于l的那种,要看他前面最近连续的(被last标记了),两者...原创 2019-10-19 08:52:33 · 102 阅读 · 0 评论 -
左神進階班
【题目】 给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况: max(arr[i…j]) - min(arr[i…j]) <= num max(arr[i…j])表示子数组 arr[i…j]中的最大值,min(arr[i…j])表示子数组 arr[i…j]中的最 小值。 package orc.shi.s; import java.util.LinkedList; pu...原创 2019-10-18 20:29:01 · 74 阅读 · 0 评论 -
Leetcode239滑动窗口的最大值
方法1:代码最多,也是最容易写的 滑动窗口,就是用双端列表实现,插入都是在尾端,左端第一个元素一定是最大值,数组也是两个指针,l和r,r每次向右移动一个位置,然后插入队列,就是和队列的右端进行比较,如果大于右端,右端弹出(不要了,不会影响结果,没用的),一直到遇到等于或者大于他的,然后插入,如果l移动一个位置,就要看左端是否失效(就是是否此位置不在窗口中了),或者用l和队列的左端元素比较,看是否相...原创 2019-10-18 11:04:12 · 102 阅读 · 0 评论