
双指针
双指针
_Charison
这个作者很懒,什么都没留下…
展开
-
leetcode 283. 移动零
@(labuladong的算法小抄)[双指针]leetcode 283. 移动零题目描述解题思路参考:labuladong的算法小抄P371快慢指针class Solution { public void moveZeroes(int[] nums) { int n = nums.length; if (n == 0) return; /* nums[0...slow]表示移除所有0后的数组,初始化为空 */ int sl原创 2021-03-13 19:15:40 · 100 阅读 · 0 评论 -
leetcode 27. 移除元素
@(labuladong的算法小抄)[双指针]leetcode 27. 移除元素题目描述解题思路参考:labuladong的算法小抄P371快慢指针要注意第一个元素就可能等于val,因此slow初始化为-1,表示结果数组为空,fast初始化为0,表示从数组开头开始遍历。class Solution { public int removeElement(int[] nums, int val) { int n = nums.length; if (n =原创 2021-03-13 19:15:07 · 84 阅读 · 0 评论 -
leetcode 83. 删除排序链表中的重复元素
@(labuladong的算法小抄)[双指针]leetcode 83. 删除排序链表中的重复元素题目描述解题思路参考:labuladong的算法小抄P371快慢指针/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution原创 2021-03-13 19:14:33 · 89 阅读 · 0 评论 -
leetcode 26. 删除排序数组中的重复项
@(labuladong的算法小抄)[双指针]leetcode 26. 删除排序数组中的重复项题目描述解题思路参考:labuladong的算法小抄P371快慢指针class Solution { public int removeDuplicates(int[] nums) { int n = nums.length; if (n == 0) return 0; /* nums[0...slow]表示无重复数组,初始化为nums[0],因原创 2021-03-13 19:13:59 · 76 阅读 · 0 评论 -
leetcode 167. 两数之和 II - 输入有序数组
@(labuladong的算法小抄)[双指针]leetcode 167. 两数之和 II - 输入有序数组题目描述解题思路参考:labuladong的算法小抄 P68class Solution { public int[] twoSum(int[] numbers, int target) { int left = 0, right = numbers.length - 1; /* 由于不能使用重复元素,所以这里要用<,而不是<= */原创 2021-03-13 19:13:11 · 79 阅读 · 0 评论 -
leetcode 19. 删除链表的倒数第N个节点
@(labuladong的算法小抄)[双指针]leetcode 19. 删除链表的倒数第N个节点题目描述解题思路参考:labuladong的算法小抄 P67要注意边界情况:head==nulln=0n>链表长度,即快指针走不到n步就已经变成null了要删除的节点是头结点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Lis原创 2021-03-13 19:07:13 · 98 阅读 · 0 评论 -
leetcode 876. 链表的中间结点
@(labuladong的算法小抄)[双指针]leetcode 876. 链表的中间结点题目描述解题思路参考:labuladong的算法小抄 P67当链表长度为奇数时,slow正好处在中间位置;当链表长度为偶数时,slow处在中间偏右的位置。寻找链表中点的一个重要作用是对链表进行归并排序/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex原创 2021-03-12 13:13:54 · 93 阅读 · 0 评论 -
leetcode 142. 环形链表 II
@(labuladong的算法小抄)[双指针]leetcode 142. 环形链表 II题目描述解题思路参考:labuladong的算法小抄 P65本题实质上就是:如果链表中有环,则返回这个环的起始位置。/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; *原创 2021-03-12 13:13:19 · 120 阅读 · 0 评论 -
leetcode 141. 环形链表
@(labuladong的算法小抄)[双指针]leetcode 141. 环形链表题目描述解题思路参考:labudadong的算法小抄 P64本题就是判定一个链表中是否有环用快慢指针。如果不含有环,快指针最终会遇到null,说明没有环;如果含有环,快指针最终会超过慢指针一圈,和慢指针相遇,说明有环。/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode nex原创 2021-03-12 13:12:03 · 133 阅读 · 0 评论 -
leetcode 5. 最长回文子串
@(labuladong的算法小抄)[dp, 双指针]leetcode 5. 最长回文子串题目描述解题思路参考:labuladong的算法小抄P373dp时间o(n²),空间o(n²)注意与最长回文子序列解法的区别。子串必须要求是连续的,因此,如果定义dp[i][j]表示s[i...j]最长回文子串的长度,则由dp[i+1][j-1]无法推出dp[i][j]class Solution { public String longestPalindrome(String s) {原创 2021-03-04 15:09:49 · 422 阅读 · 1 评论 -
leetcode 42. 接雨水
@(labuladong的算法小抄)[dp, 双指针]leetcode 42. 接雨水题目描述解题思路参考:labuladong的算法小抄P364dp时间o(n),空间o(n)class Solution { public int trap(int[] height) { int n = height.length; if (n <= 2) return 0; /* 定义:lMax[i]表示height[0...i]中最高柱子的高原创 2021-03-04 15:08:58 · 115 阅读 · 0 评论