
LeetCode刷题笔记
算法
碳烤小肥羊。。。
all in
展开
-
LeetCode:142:环形链表 II(链表系列)
环形链表II原创 2023-03-16 19:48:13 · 479 阅读 · 0 评论 -
LeetCode:24:两两交换链表中的结点(链表系列)
两两交换链表中的结点原创 2023-03-16 19:28:18 · 114 阅读 · 0 评论 -
LeetCode:707. 设计链表(链表系列)
设计链表原创 2023-03-17 01:45:00 · 314 阅读 · 0 评论 -
LeetCode:206:反转链表(链表系列)
输入:head = [1,2,3,4,5],请你反转链表,并返回反转后的链表。输出:[5,4,3,2,1]:给你单链表的头节点。原创 2023-03-16 23:45:00 · 81 阅读 · 0 评论 -
LeetCode:160:链表相交(链表系列)
链表相交原创 2023-03-17 05:45:00 · 442 阅读 · 0 评论 -
LeetCode:19:删除链表的倒数第N个结点(链表系列)
快慢指针,先让fast指针向后移动n步,然后slow,fast指针一起向后移动,当fast指针移动到链表末尾的时候,slow恰好在要删除结点的前一个结点。:先统计链表节点的个数,然后找到要删除结点的前一个结点即可。:给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。原创 2023-03-16 19:39:47 · 165 阅读 · 0 评论 -
LeetCode:141:环形链表I(链表系列)
环形链表I原创 2023-03-17 07:45:00 · 121 阅读 · 0 评论 -
LeetCode:203. 移除链表元素(链表系列)
删除链表中等于给定值。原创 2023-03-17 00:15:00 · 130 阅读 · 0 评论 -
LeetCode:977 有序数组平方
有序数组平方原创 2023-03-06 20:32:40 · 714 阅读 · 0 评论 -
LeetCode:209:长度最小的子数组
长度最小的子数组原创 2023-03-06 20:37:49 · 87 阅读 · 0 评论 -
LeetCode:59.螺旋矩阵2
螺旋矩阵2原创 2023-03-06 20:45:03 · 108 阅读 · 0 评论 -
剑指offer 29:顺时针打印矩阵
顺时针打印矩阵原创 2023-03-06 20:47:48 · 128 阅读 · 2 评论 -
LeetCode:27. 移除元素
移除元素原创 2023-03-06 20:28:06 · 387 阅读 · 0 评论 -
LeetCode:54. 螺旋矩阵
螺旋矩阵原创 2023-03-06 20:39:36 · 111 阅读 · 0 评论 -
0-1背包问题理论基础
01背包问题理论讲解,二维dp数组解决01背包问题以及一维dp数组解决01背包问题原创 2022-10-12 10:08:52 · 378 阅读 · 0 评论 -
LeetCode 96.不同的二叉搜索树
不同的二叉搜索树在代码随想录的五部曲中,个人感觉最重要的是关系式推导部分,如何利用前面已有的数据推导现有的数据是解决问题的关键,像数组定义,初始化,遍历顺序倒是其次。本题的精髓在于关系式的推导,要学会这种思想。给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。3. dp数组如何进行初始化, dp[0] = 1, dp[] = 1。原创 2022-10-07 10:25:06 · 89 阅读 · 0 评论 -
39. 组合总和 && 40. 组合总和2 && 216. 组合总和3
39. 组合总和 && 40. 组合总和2 && 216. 组合总和3。原创 2022-08-09 11:07:50 · 114 阅读 · 0 评论 -
LeetCode 283. 移动零(简单、数组)
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。原创 2022-08-01 21:44:07 · 171 阅读 · 0 评论 -
LeetCode 105.从前序与中序遍历序列构造二叉树 && 106.从中序与后序遍历序列构造二叉树
从前序与中序遍历序列构造二叉树 && 从中序与后序遍历序列构造二叉树。原创 2022-07-28 00:43:48 · 179 阅读 · 0 评论 -
LeetCode 101. 对称二叉树 && 100. 相同的树 && 572. 另一棵树的子树
对称二叉树相同的树另一颗树的子树原创 2022-07-25 11:20:22 · 98 阅读 · 0 评论 -
用队列实现栈(Java语言实现)
用队列实现栈原创 2022-07-05 16:55:48 · 413 阅读 · 0 评论 -
用栈实现队列(Java语言实现)
用栈实现队列原创 2022-07-05 10:20:32 · 216 阅读 · 0 评论 -
LeetCode 454. 四数相加 II
题目描述:给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:示例 1:示例 2:提示:思路解析:代码实现:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/4sum-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-07-01 11:34:29 · 162 阅读 · 0 评论 -
LeetCode 1. 两数之和
题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:示例 2:示例 3:提示:进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?方法一:暴力破解方法一:使用Map集合来源:力扣(LeetCode)链接:https://leetcode.cn/problems/two-原创 2022-06-29 09:30:53 · 85 阅读 · 0 评论 -
LeetCode 142. 环形链表 II
题目描述:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。方法一:使用map集合一个非常直观的思路是:声明一个map集合(key:结点, v原创 2022-06-26 21:36:50 · 127 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第 N 个结点
题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:示例 2:示例 3:思路解析:指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。首先这里我推荐大家使用虚拟头结点,这样方便处理删除实际头结点的逻辑。定义fast指针和slow指针,初始值为虚拟头结点,如图:fast首先走n + 1步 ,为什么是n+1呢,因为只有这样同时移动的时候slow才能指向删除节点的上一原创 2022-06-25 10:33:59 · 185 阅读 · 0 评论 -
Java定义链表节点方式
Java定义链表节点原创 2022-06-18 20:28:32 · 764 阅读 · 0 评论 -
LeetCode 13. 罗马数字转整数(简单、字符串)day25
题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II原创 2022-05-13 12:55:06 · 145 阅读 · 0 评论 -
LeetCode 67. 二进制求和
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:示例 2:代码实现:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/add-binary著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-07 09:38:04 · 98 阅读 · 0 评论 -
LeetCode 541. 反转字符串II(简单、字符串)day25
题目描述:给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = "abcdefg", k = 2输出:"bacdfeg"示例 2:输入:s = "abcd", k = 2输出:"bacd"提示:1 <= s.length <= 104s 仅由小写英文原创 2022-05-13 14:42:20 · 189 阅读 · 0 评论 -
LeetCode 168. Excel表列名称
题目描述:给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:示例 1:示例 2:示例 3:示例 4:思路解析:这是一道从 1 开始的 26 进制转换题。对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 columnNumber 为 0 即可。。但本题需要我们将从 1 开始,因此在执行「进制转换」操作前,我们需要先对columnNumbe原创 2022-06-14 11:36:06 · 111 阅读 · 1 评论 -
LeetCode 8. 字符串转换整数 (atoi)(中等、字符串)
题目描述:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:注意:示例 1:示例 2:示例 3:提示:代码实现:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/string-to-integer-atoi著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-10 09:42:51 · 90 阅读 · 0 评论 -
LeetCode 14. 最长公共前缀(简单、字符串)day26
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。示例 2:输入:strs = ["ab","a"]输出:"a"提示:1 <= strs.length <= 2000 <= strs[i].length &l原创 2022-05-17 13:44:58 · 141 阅读 · 0 评论 -
LeetCode 495. 提莫攻击(简单、数组)day19
题目描述:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 t原创 2022-04-29 09:46:08 · 136 阅读 · 0 评论 -
LeetCode 多数元素(简单、数组)day09
题目描述: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。解题思路:遍历整个数组,对记录每个数值出现的次数(利用HashMap,其中key为数值,value为出现次数);接着遍历HashMap中的每原创 2022-04-18 10:07:03 · 103 阅读 · 0 评论 -
LeetCode 977. 有序数组的平方(简单、数组)day23
题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104 <原创 2022-05-10 13:13:33 · 94 阅读 · 0 评论 -
LeetCode 496. 下一个更大元素 I(简单、数组)day20
**题目描述:**nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是原创 2022-05-03 19:49:45 · 279 阅读 · 0 评论 -
LeetCode 只出现一次的数字(简单、数组)day08
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路:除了某个元素只出现一次以外,其余每个元素均出现两次,题目描述的这句话是关键,很容易想到异或操作,下面先来介绍一下异或操作.当两个数的二进制表示,进行异或运算时,当前位的二进制位上元素不同则为1,相同则为0。原创 2022-04-17 10:56:28 · 441 阅读 · 0 评论 -
LeetCode 16. 最接近的三数之和(中等、数组)day13
题目描述:给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:0提示:3 <= nums.length &l原创 2022-04-22 11:49:52 · 1039 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器(中等、数组)day10
题目描述:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height = [1原创 2022-04-19 12:12:44 · 156 阅读 · 0 评论