LeetCode
李大鸭
这个作者很懒,什么都没留下…
展开
-
快慢指针之链表倒数第K个结点
题目描述 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 解题思路 快慢指针是解决这类问题的经典算法,如求链表的中间节点等问题,都可以用到这个思想 我们定义两个指针fast和slow,初始指向链表的头结点 先让快指针fast先走k步,然后再让两指针同步走 直到快指针为空(走出了链表...原创 2020-04-04 17:31:19 · 253 阅读 · 0 评论 -
LeetCode 409. 最长回文串
题目描述 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: "abccccdd" 输出: 7 解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。 解题思路 对于一个回文串,如果长度为偶数时,那么所有的...原创 2020-03-19 11:11:01 · 106 阅读 · 0 评论 -
863.矩形重叠
问题描述 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,判断它们是否重叠并返回结果。 示例 1: 输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3] 输出:true 示例 2: 输入:...原创 2020-03-18 22:03:53 · 88 阅读 · 0 评论 -
LeeetCode442. 数组中重复的数据(巧用负号标记数组)
问题描述 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例: 输入: [4,3,2,7,8,2,3,1] 输出: [2,3] 思路 本题可以用哈希表存储每个元素的出现次数,但题目要求不使用额外的存储空间 由题可知,数组中的元素范围为1到...原创 2020-02-17 14:43:54 · 222 阅读 · 0 评论 -
LeetCode88.合并两个有序数组
问题描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 ...原创 2020-02-13 16:21:37 · 81 阅读 · 0 评论 -
LeetCode 26.删除排序数组中的重复项
问题描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例...原创 2020-02-05 22:23:27 · 115 阅读 · 1 评论