双指针
文章平均质量分 63
Zyy~
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!
展开
-
《leetcode》两数之和,三数之和,四数之和《双指针》
1. 两数之和难度简单12203给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [原创 2021-09-26 12:46:55 · 147 阅读 · 0 评论 -
《Dp》面试题 17.21. 直方图的水量《leetcode》
面试题 17.21. 直方图的水量难度困难121给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。感谢 Marcos贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6通过次数15,503提交次数24,296Code:dpclass Solut..原创 2021-04-02 11:11:42 · 107 阅读 · 0 评论 -
寒假刷双指针《双指针》
1.普通双指针。633. 平方数之和难度中等163给定一个非负整数c,你要判断是否存在两个整数a和b,使得a2+ b2= c。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:输入:c = 2输出:true示例 5:输入:c = 1输出:true//时间复杂度 根号nclas...原创 2021-02-17 16:21:05 · 157 阅读 · 0 评论 -
《双指针》283. 移动零《leetcode》
283. 移动零难度简单834给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路解析:双指针。AC代码:class Solution { public void moveZeroes(int[] nums) { int i = 0;//统计前面0的个数 ...原创 2020-11-19 13:12:29 · 161 阅读 · 0 评论 -
《双指针》141. 环形链表《leetcode》
141. 环形链表难度简单852给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。 否则,返回false。进阶:你能用O(1)(即,常量)内存解决此问题吗?...原创 2020-11-15 21:48:31 · 146 阅读 · 0 评论 -
《双指针》86. 分隔链表《leetcode》
86. 分隔链表难度中等279给定一个链表和一个特定值x,对链表进行分隔,使得所有小于x的节点都在大于或等于x的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路分析:建立两个头节点beforeHead,afterHead,分别用来保存val比x小的节点,和大于等于val的节点。...原创 2020-11-14 21:45:53 · 156 阅读 · 0 评论 -
《双指针》80. 删除排序数组中的重复项 II《leetcode》
80. 删除排序数组中的重复项 II难度中等313给定一个增序排列数组nums,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就...原创 2020-11-13 22:22:41 · 92 阅读 · 0 评论 -
《双指针》16. 最接近的三数之和《leetcode》
16. 最接近的三数之和难度中等627给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3 -10^3&l...原创 2020-11-12 15:12:56 · 85 阅读 · 0 评论 -
《双指针》19. 删除链表的倒数第N个节点《LeetCode》
19. 删除链表的倒数第N个节点难度中等1109收藏分享切换为英文接收动态反馈给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:1.就是很正常,先遍历一遍求链表长度sum,在通过sum-n+1得到正向要删除节...原创 2020-11-11 21:12:00 · 116 阅读 · 0 评论