leetcode刷题
文章平均质量分 52
个人的一些leetcode题目的体会
随风756
这个作者很懒,什么都没留下…
展开
-
最小覆盖字串(滑动窗口)
当这个窗口包含的元素满足条件,即包含字符串T的所有元素,记录下这个滑动窗口的长度j-i+1,这些长度中的最小值就是要求的结果。滑动窗口扩展或者收缩的时候,去更新这个need字典,例如当滑动窗口包含某个元素,我们就让need中这个元素的数量减1,代表所需元素减少了1个;我们用一个字典need来表示当前滑动窗口中需要的各元素的数量,一开始滑动窗口为空,用t中各元素来初始化这个need,当。不断增加i使滑动窗口缩小,因为是要求最小字串,所以将不必要的元素排除在外,使长度减小,直到碰到一个必须包含的元素,原创 2023-11-25 17:55:49 · 380 阅读 · 0 评论 -
移动零 (快慢指针)
移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。原创 2023-11-18 20:38:59 · 26 阅读 · 0 评论 -
水果成篮(滑动窗口)
条件是:这个子数组的长度最长 并且这个子数组中 元素种类不能超过2。你想要尽可能多地收集水果。题目可以这样理解: 给定我们一个数组,要求我们从这个数组中选取一个子数组。你正在探访一家农场,农场从左到右种植了一排果树。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。可以采摘 [1,2,1,1,2] 这五棵树。可以采摘 [2,3,2,2] 这四棵树。可以采摘 [1,2,2] 这三棵树。,返回你可以收集的水果的。可以采摘全部 3 棵树。原创 2023-11-18 17:59:17 · 26 阅读 · 1 评论 -
有序数组的平方 力扣
给你一个按排序的整数数组nums,返回组成的新数组,要求也按排序。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]原创 2023-11-12 21:58:16 · 31 阅读 · 1 评论 -
反转字符串(三种解法)
StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。,其作用返回一个字符串的指定位置的字符,索引是从[0,length-1]。第四次循环reverse=str.charAt(3)+cba=dcba;第三次循环reverse=str.charAt(2)+ba=cba;第一次循环reverse=str.charAt(0)+""=a;第二次循环reverse=str.charAt(1)+a=ba;以str="abcd"为例,length=4;原创 2023-09-13 19:29:55 · 725 阅读 · 1 评论 -
罗马数字转整数 力扣
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II。27 写做 XXVII, 即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。原创 2023-09-22 21:08:17 · 47 阅读 · 1 评论 -
最长公共前缀 力扣
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。原创 2023-09-22 20:42:28 · 23 阅读 · 1 评论 -
删除有序数组中的重复项 力扣
直到 u = 2, i = 6 ,此时nums[u - k] = nums[0] = 1,nums[i] = nums[6] = 2 ,两者不相等,进入if语句,nums[u++] = nums[i] -->nums[2] = nums[6] = 2。继续循环 u = 3,i = 7 此时nums[u - k] = nums[1] = 1,nums[i] = nums[7] = 2 ,两者不相等,进入if语句,nums[u++] = nums[i] -->nums[3] = nums[7] = 2。原创 2023-10-21 20:32:47 · 60 阅读 · 1 评论