自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(184)
  • 收藏
  • 关注

原创 leetcode67.二进制求和

【代码】leetcode67.二进制求和。

2025-07-06 17:45:54 221

原创 leetcode71.简化路径

参考了leetcode的官方题解,用/分割字符串就能解决多个/的问题,利用栈后进先出,碰到..就回退出栈,空字符串和.不用处理,其余正常的目录就入栈,最后双端链表从头拼接就是结果。

2025-07-06 16:33:19 189

原创 leetcode918.环形子数组的最大和

参考了灵神的题解,然后只要用动态规划求解子数组的最大和和最小和就可以。

2025-07-05 20:23:02 190

原创 leetcode86.分隔链表

具体实现是先利用左指针找到原链表第一个不小于x的节点的前一个节点;然后右指针以此为起点,找到下一个节点值小于x的,然后把下一个节点抽到左值针的下一个节点;大体的思路是不断向后遍历找到节点值小于x的,然后把他置换到整个链表的前方。

2025-07-05 17:04:44 214

原创 leetcode427.建立四叉树

解题基本思路是先判断当前矩阵是不是全0或全1,如果是就直接返回新建的一个节点值(矩阵的统一值,叶子节点),如果不是那就新建一个节点值,非叶并且左上右上左下右下四个方向上递归创建节点。区间x0到x1和区间y0到y1都是左闭右开的。

2025-06-30 20:28:06 180

原创 leetcode133.克隆图

【代码】leetcode133.克隆图。

2025-06-28 23:03:49 177

原创 leetcode130.被围绕的区域

我们可以从4个边上的所有点为起点执行dfs,将深度搜索得到的O变为1;最后遍历整个矩阵只要是1的变回O,不是1的就全部变为X。这题可以这样解,如果不被包围那么一定和4个边上的O相关联,也就是只要接壤了边上的O的就不会被包围,没有接壤的就是被包围。

2025-06-26 12:52:42 179

原创 leetcode103.二叉树的锯齿形层序遍历

经典的层序遍历,我们可以用一个flag区分从左往右和从右往左,如果是从右往左插入直接链表尾插就行,如果是从右往左我们可以遍历的时候采用链表头插法就行。

2025-06-25 22:03:09 114

原创 leetcode173.二叉搜索树迭代器

直接维护一个数组和一个数组下标,中序遍历把二叉搜索树中的值按照顺序放入到数组中。

2025-06-24 21:33:34 258

原创 leetcode129.求根节点到叶节点数字之和

【代码】leetcode129.求根节点到叶节点数字之和。

2025-06-24 20:57:14 228

原创 leetcode61.旋转链表

整体的思路是求出实际上要旋转的大小,然后裁剪后k个元素拼接到整个链表的头。

2025-06-24 20:14:38 230

原创 leetcode82.删除排序链表中的重复元素II

删除链表重复节点【基础算法精讲 08】

2025-06-23 22:18:25 242

原创 leetcode83.删除排序链表中的重复元素

当前节点的值和下一个节点的值进行比对,若相同则当前节点的下一个指向下下个,以此往复。

2025-06-23 21:27:27 240

原创 leetcode290.单词规律

【代码】leetcode290.单词规律。

2025-06-23 20:58:24 204

原创 leetcode373.寻找和最小的k对数字

这题优先想到小根堆,利用小根堆,存储一个三元组,三元组第一个数字表示选取两个数组的值的总和,用于小根堆排序,第二个数是数组1的下标,第三个数是数组2的下标。的方式逐步扩展,而无需枚举所有数对。

2025-04-29 12:29:58 233

原创 leetcode201.数字范围按位与

找到公共前缀部分,然后后面的部分全0。

2025-04-26 21:14:38 268

原创 leetcode66.加一

从后向前遍历,直到碰到非9的数(也就是数组中中最后一个非9的数) ,该值+1,然后其后的数字全部0。

2025-04-26 20:44:16 345

原创 leetcode149.直线上最多的点数

暴力枚举,固定一个点然后与后续的点相连,看看能有几个点在该直线上。直线上的点的个数用哈希表来存储。

2025-04-21 20:56:54 246

原创 leetcode50.pow(x,n)

【代码】leetcode50.pow(x,n)

2025-04-21 16:14:33 267

原创 leetcode205.同构字符串

两个哈希表存储字符的映射关系,如果前面字符的映射关系和后面的不一样则返回false。

2025-04-20 21:18:00 237

原创 leetcode125.验证回文串

【代码】leetcode125.验证回文串。

2025-04-19 17:35:43 303

原创 leetcode57.插入区间

模拟类型的题目,首先是要找到新插入区间融合进来后的起始点,如果新区间起始点在当前区间范围或者比这个范围还小则视为找到了起始点;然后是寻找融入进来区间的右边界,有边界是只有新区件右边界比当前区间的右端点或者左端点还要小才视为找到。

2025-04-19 15:54:01 229

原创 leetcode14.最长公共前缀

暴力逐个比对最长前缀。

2025-04-16 16:34:41 276

原创 leetcode298.生命游戏

本题是一道模拟题目,为了不引入额外数组浪费空间采用引入额外状态标记细胞状态变化的方法来求解。本题关键在于求解周围活细胞数量,所以周围只要有1或-1就活细胞数量+1。0表示死细胞,1表示活细胞,-1表示由活变死,2表示由死变活。

2025-04-15 16:08:07 221

原创 leetcode36.有效的数独

遍历网格得到格子中的数字,可以映射到行、列、九宫格中该数字是否使用过,如果使用过那么棋盘不合法,没有使用过则将当前映射到的位置置为true。由于固定9*9网格,数字由1-9,所以采用数组代替哈希表。

2025-04-14 16:59:48 176

原创 leetcode167.两数之和||

双指针解法:因为原来的数组有序,所以可以通过改变区间的方式求解,当左右指针的值小于目标,那么右移左指针,大于就左移右指针,相等时则为结果。

2025-04-13 09:59:19 166

原创 leetcode68.左右文本对齐

难度高的模拟类型题目,关键点在于事先知道有多少单词要放在本行并且还要知道本行是不是最后一行(最后一行需要全部单空格右对齐,不是最后一行就空格均摊),非最后一行的空格要尽可能平等的均摊在相邻单词间的空隙内。leetcode-字符串篇 68题 文本左右对齐。

2025-04-10 19:56:40 232

原创 leetcode12.整数转罗马数字

循环数值由大到小以此拼接就行。

2025-04-09 15:37:54 241

原创 leetcode13.罗马数字转整数

遍历,下一个值不大于当前值就加上当前值,否则就减去当前值。

2025-04-08 22:02:36 232

原创 leetcode6.Z字形变换

题目说是z字形变化,但其实模拟更像n字形变化,找到字符下标规律就逐个拼接就能得到答案。

2025-04-08 21:37:36 260

原创 leetcode380. O(1) 时间插入、删除和获取随机元素

为了保证常数时间插入和获取采用可变数组存储数据,那么在删除一个随机元素时如果需要移动元素需要n时间复杂度,那么进一步优化可以采用哈希表获取删除元素所在的位置然后把最后一个元素覆盖到要删除的位置最后再把最后一个元素删除掉,这样就可以避免循环移动覆盖的时间开销。

2025-04-08 16:30:05 157

原创 leetcode274.H指数

直接排序完后进行遍历。

2025-04-07 19:38:26 194

原创 leetcode80.删除有序数组中的重复项||

【代码】leetcode80.删除有序数组中的重复项||

2025-04-07 16:40:35 114

原创 leetcode97.交错字符串

dp[i][j]的含义是s2的前i个字符和s1的前j个字符能够交错组成s3的前i+j个字符,dp[0][0]表示空串能够组成空串一定为true,所以多引入一行一列作为辅助。一维dp空间优化版本, 这里需要注意的是循环时j为0这个情况要单独判断。遍历顺序为常规的上到下左到右。

2025-04-07 11:11:27 226

原创 leetcode221.最大正方形

【代码】leetcode221.最大正方形。

2025-04-06 21:36:07 250

原创 leetcode120.三角形最小路径

【代码】leetcode120.三角形最小路径。

2025-04-06 16:58:47 202

原创 leetcode169.多数元素

result用来记录当前遍历过的数字中出现次数最多的,count用来记录result比其他的所有元素出现的次数多了多少。【力扣hot100】【LeetCode 169】多数元素。

2025-04-06 16:26:53 249

原创 leetcode4.寻找两个正序数组中的中位数

基本思路是将两个数组看成一个数组,然后划分为两个部分,若为奇数左边部分个数多1,若为偶数左边部分等于右边部分个数。i表示数组1划分位置(i为4是索引4也表示i的左半部分有四个元素),j表示数组2的划分位置,i和j的划分保证左边部分的所有值都不超过右边部分的最小值,这样中位数就在i和j的附近,与i、j、i-1、j-1这四个位置上的元素有关。若总长度为奇数,则结果为左部分的最大值,若为偶数则结果为左部分的最大值和右边部分的最小值取均值。LeetCode004-两个有序数组的中位数-最优算法代码讲解。

2025-04-05 21:47:51 258

原创 leetcode295.数据流的中位数

创建大根堆和小根堆,保证大根堆和小根堆的数量差异在1之内并且大根堆的最大值总是不超过小根堆的最小值(大根堆的所有元素都小于等于小根堆的所有元素,这样就将所有的元素一分为2了),这样中位数就只与大根堆的最大值和小根堆的最小值有关。添加元素时先扔到大根堆,如果大根堆的最大大于小根堆的最小,那么把这个最大送给小根堆,之后如果大根堆的元素比小根堆多2那么就将小根堆的元素送给大根堆,反之同理。【大厂程序员带你刷力扣】【LeetCode 295】数据流的中位数|大根堆|小根堆。

2025-04-05 13:04:36 202

原创 leetcode215.数组中的第k个最大元素

快速排序中我们随机选择一个轴值,左边的元素都小于他,右边的元素都大于他,然后返回这个下标索引(分割点),如果这个分割点恰好是n-k那么这就是最终结果,如果分割点比n-k小那么说明答案应该在右边的区间,反之答案就在左边的区间。基于快速排序思路的一种求解,我们的问题是求解第k个最大的元素,那么也就是排序后数组下标索引在n-k的位置。7-2「力扣」第 215 题:数组中的第 K个最大元素。如果都没找到说明k肯定不合法直接返回-1。

2025-04-05 11:59:46 257

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除