leetcode狂刷
文章平均质量分 76
m明月Java3
现就职于字节,立志成为全栈选手,你早上从床上坐起,是因为你期待这一天。
展开
-
力扣第206题.反转链表
206. 反转链表题目题解题目给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?来源:力扣(Leet原创 2022-03-01 21:38:53 · 168 阅读 · 0 评论 -
力扣第160题.相交链表
160. 相交链表题目题解一:哈希集合题解二:双指针题解三:长者长度差变换,之后两者同时进一题解四:暴力解法题目给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。原创 2022-03-01 21:06:41 · 254 阅读 · 0 评论 -
力扣第142题.环形链表II
142. 环形链表 II题目题解一:快慢指针题解二:哈希表题目给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:hea原创 2022-03-01 19:42:44 · 856 阅读 · 0 评论 -
力扣第141题.环形链表
141. 环形链表题目题解:快慢指针题目给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tru原创 2022-03-01 18:17:11 · 240 阅读 · 0 评论 -
力扣第83题.删除链表中的重复元素
83. 删除排序链表中的重复元素题目题解一:一次遍历题解二:递归题目给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列来源:力扣(LeetCode)链接:原创 2022-03-01 17:55:43 · 631 阅读 · 0 评论 -
力扣第21题.合并两个有序链表
21. 合并两个有序链表题目题解一:双指针加循环题解二:递归题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 10原创 2022-02-18 22:30:11 · 422 阅读 · 0 评论 -
leetcode第448题.找到所有数组中消失的数字
448. 找到所有数组中消失的数字题目题解一:使用额外空间进行桶排序题解二:原地修改(进阶))题目给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:nums = [1,1]输出:[2]提示:n == nums.length1 <= n <= 1原创 2022-02-12 20:18:03 · 6933 阅读 · 2 评论 -
leetcode第283题. 移动零
283. 移动零题目题解:双指针(挪动方式)题解:双指针(交换)题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1进原创 2022-02-12 18:18:43 · 591 阅读 · 0 评论 -
88. 合并两个有序数组
88. 合并两个有序数组题目题解一:直接合并后排序题解二:双指针题解三:逆向双指针题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,原创 2022-02-09 23:20:41 · 335 阅读 · 0 评论 -
1.两数之和
1.两数之和题目题解一:暴力枚举哈希表法题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nu原创 2022-02-08 19:47:24 · 121 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列题目题解一:递归题解二:哈希表动态规划题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。原创 2022-02-07 23:03:27 · 133 阅读 · 0 评论 -
力扣第70题.爬楼梯
70.爬楼梯题目题解一:递归求解题解二:哈希表法题解三:动态规划题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶提示:1 <= n <= 45来源:力扣(LeetC原创 2022-02-07 19:58:34 · 6790 阅读 · 6 评论