LeetCode
文章平均质量分 69
买奶茶的小孩
这个作者很懒,什么都没留下…
展开
-
LeetCode——1.数组3:滑动窗口(209.长度最小的子数组、904.水果成篮、76.最小覆盖字串)
滑动窗口的思想,用到了map集合,将t串存到集合里面,之后利用循环将s串也放到集合里面并进行判断,实际上是在s中包含t字符 大于 t数量时缩小窗口的,这样在count第一次达到t的长度是,之后会一直保持。需要注意的是当sum值大于或者等于target时,之后的过程end是不动的,要缩小范围移动start,直到sum值小于target,才会移动end,所以这种情况要用到循环。给你一个整数数组 fruits ,返回你可以收集的水果的 最大 数目。子数组[4,3]是该条件下的长度最小的子数组。原创 2022-09-17 15:45:25 · 177 阅读 · 0 评论 -
LeetCode——1.数组2:(2)移除元素(283.移动零、977.有序数组的平方)
只设一个指针来遍历数组,count来记0的个数,count!= 0说明数组里面找到了0,如果之后指向的元素不等于0,就让它往前移coun个单位,让当前指向的元素等于0。增强for循环:遍历nums数组,把值赋给num,注意num不是数组是值,所以在循环里面可以判断num的值来给nums数组赋值,循环结束之后为nums数组赋0。第二段代码又单独设了个count用来记不等于0的个数,循环结束之后为数组末尾添加0。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。原创 2022-09-10 11:56:42 · 200 阅读 · 0 评论 -
LeetCode——1.数组2:(1)移除元素(27.移除元素、26.删除有序数组中的重复项)
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。设两个指针,slow慢指针和fast快指针,fast指针遍历整个数组,找到和slow指针指向的元素不一样的值,然后让slow指针下移一位,如图所示。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。只设了一个指针point来遍历数组,count来计重复的个数,最后返回的长度就是point-count。元素的顺序可以改变。原创 2022-09-09 15:21:12 · 132 阅读 · 0 评论 -
LeetCode——1.数组1:(4)二分查找(34. 在排序数组中查找元素的第一个和最后一个位置)
题目链接给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。[3,4]原创 2022-09-07 21:16:28 · 170 阅读 · 0 评论 -
LeetCode——1.数组1:(3)二分查找、牛顿迭代法(367.有效的完全平方数)
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false。这道题的意思是遍历1-num,找出一个值的平方等于num。进阶:不要 使用任何内置的库函数,如 sqrt。需要注意的是判断条件,原创 2022-09-07 20:29:34 · 131 阅读 · 0 评论 -
LeetCode——1.数组1:(2)二分查找、牛顿迭代法(69.x的平方根)
例如x=8,模拟出最后一次循环的状态,找返回的值,此时mid值等于3,平方等于9>x,所以right=mid-1,这时right指向的是平方最接近8而且舍去小数部分的值。-C,此处的C就是题目中给出的x,函数f(x)与x轴的交点就是题目中要求的算术平方根。3.求出在此点的切线方程,求出切线与x轴的交点即为新的x0(如果难理解可以设为x1,然后再让新求出的x1赋给x0)。1.设出f(x)的表达式,因为题目中要求求出x的算术平方根,所以函数设为f(x)=2.将题目给的x作为我们猜想的第一个点,程序里设为x0。原创 2022-09-01 19:59:09 · 155 阅读 · 0 评论 -
LeetCode——1.数组1:(1)二分查找(35.搜索插入位置)
目录 数组 二分查找 方法 35.搜索插入位置 数组 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 注意 数组下标是从0开始的 数组的地址是连续的 在删除或者增加数组元素时,数组元素不能删除只能覆盖,所以要移动元素 二分查找 使用条件 数组元素要有序的 有的题也会出现有重复元素的情况 二分法的边界问题比较重要,关于区间的定义一般有两种,一种是左闭右闭[left,right],第二种左闭右开[left,right),原创 2022-08-30 13:59:53 · 180 阅读 · 0 评论