自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法-跳跃游戏II

方法一虽然可以实现,但是时间复杂度高O(n2)

2025-04-27 06:24:33 980

原创 栈-柱状图中最大的矩形

这里注意在使用ArrayDeque接口进行栈的实现时,必须使用peekLast()或者pollLast()、addLast()类似的方法,不能使用Stack类的方法,不然会报错。

2025-04-27 05:11:24 221

原创 二叉树层序遍历

先进先出,符合一层一层遍历的逻辑,而栈先进后出模拟深度优先遍历也就是递归的逻辑。层序遍历一个二叉树,就是从左到右一层一层的去遍历二叉树,学完之后你就可以一口气凎完下面十道力扣题目。二叉树的递归和迭代遍历都是。,而二叉树层序遍历是。

2025-04-26 16:11:30 219

原创 链表-两两交换链表中的结点

一次取出来两个结点,进行交换,然后结束条件是当前结点之后只有一个结点或者没有结点。

2025-04-24 19:31:26 258

原创 链表-两数相加

【代码】链表-两数相加。

2025-04-24 18:27:42 253

原创 技巧-多数元素

使用hashmap,然后将数组中的数存入HashMap中,然后遍历HashMap中的键值对,如果当前键值对的值大于临时值,则更新最后返回临时键值对的值。

2025-04-24 17:48:30 196

原创 链表-反转链表

有点像交换数组中的三个元素。

2025-04-23 08:00:50 300

原创 动态规划-零钱兑换

【代码】动态规划-零钱兑换。

2025-04-21 23:06:24 262

原创 矩阵-螺旋矩阵

【代码】矩阵-螺旋矩阵。

2025-04-21 19:45:48 181

原创 动态规划-完全平方数

使用动态规划,这个数必然落在(1,√n),则可以枚举,假设枚举到j,那么还需要取到若干数的平方,构成n-j * j,则可以跟这个写出状态转移方程。

2025-04-21 06:10:16 203

原创 动态规划-打家劫舍

开始对于题目理解错误 ,以为只是隔一家偷一次,只有两间房屋,选择其中金额较高的房屋进行偷窃。3、房间数大于2(k > 2)2、两间房,则偷中间的max。1、只有一间房,则直接偷了。只有一间房屋,则偷窃该房屋。

2025-04-17 21:06:21 132

原创 子串-最小覆盖子串

使用滑动窗口,使用两个hash表。

2025-04-15 00:28:31 113

原创 最强八股文总结-我也想offer拿到手软

面试题: Spring 框架中单例bean是线程安全的吗答:不是线程安全 Spring 框架中有一个 @Scope 注解,默认的值就是singleton,单例的。因为一般在spring的bean的中都是注入无状态的对象,没有线程安全问题,如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决Spring框架中bean默认单例Java Virtual Machine Java程序的运行环境(java二进制字节码的运行环境)一次编写,到处运行。

2025-04-14 23:19:29 733

原创 子串-滑动窗口的最大值

当k为1时,结果错误,移动删除掉的可能刚好是最大值,所以不能通过此方法来进行计算。注意这里细节处理,什么时候将堆顶元素poll,,还有将数组的索引位置也维护在优先队列中。:定长双指针,滑动窗口,不是很合理。2. 使用单调队列,主要在于这段。但是此时的算法执行用时有点高。:整型数组,最大值k。

2025-04-14 23:16:28 230

原创 贪心算法-跳跃游戏

遍历数组,更新可以到达的最远位置,如果一旦能到达的最远位置超过了数组的最大位置,则可以直接返回true,遍历完成之后,最后一个位置仍不可到达,则直接返回false。

2025-04-11 19:15:33 713

原创 动态规划-杨辉三角

【代码】动态规划-杨辉三角。

2025-04-07 21:34:45 341

原创 堆-前K个高频元素

然后使用一个长度为K的最小堆,每次都将新的元素与堆顶元素进行比较(堆中频率最小的元素),如果新的元素的频率比堆顶端的元素大,则弹出堆顶端的元素,将新的元素添加进堆中,最后堆中的k个元素即为前k个高频元素。

2025-04-01 19:04:25 148

原创 栈-每日温度

栈-每日温度。

2025-03-31 20:45:09 139

原创 栈-字符串解码

遍历,遇到数字就对后面括号内的字符重复操作。:字符串,带有正整数和括号。:只含有字母的字符串。

2025-03-29 16:54:30 198

原创 堆-数组中的第K个最大元素

整型数组,整型变量。

2025-03-28 23:55:40 152

原创 栈-最小栈

使用双端队列来实现,并且使用一个minStack进行维护最小值,每次push一次,minStack维护一次最小值,pop一次,同样的minStack也pop一次,xStack和minStack中元素数量一致、

2025-03-27 21:03:43 195

原创 栈-有效的括号

我们可以看到Satck的功能基本上已经满足我们的要求了,可是在文档上依然推荐我们使用Deque双端队列的实现类来完成Satck的功能,这是因为java中Stack类设计的有一些问题,因为我们可以看到Satck是继承自 Vector,但是依照程序设计的一个原则多组合少继承来看,这个设计是不合理的,应该是Vector组成Satck比较好,然后java的官方也发现了这个问题,但是后面想更改的时候时间就比较晚了,所以才在文档里面建议我们使用双端队列来模拟栈比较好。细节在于将右括号入栈。

2025-03-27 19:50:58 332

原创 二分查找-寻找两个正序数组的中位数

浮点数double。

2025-03-27 19:00:36 181

原创 回溯-N皇后

【代码】回溯-N皇后。

2025-03-25 18:59:52 328

原创 二分查找-寻找旋转排序数组中的最小值

作为while循环的条件呢?因为在第一个if判断中,right赋值为mid,当最后left,mid,right全都相等时,会陷入死循环,所以此处使用。使用搜索旋转排序数组的方法,会漏掉一种情况,如下代码。所以在进行比较时使用。

2025-03-25 17:40:42 143

原创 二分查找-寻找旋转排序数组中的最小值

二分查找,判断哪一边有序。

2025-03-24 18:14:18 157

原创 回溯-分割回文串

【代码】回溯-分割回文串。

2025-03-24 17:14:51 309

原创 二分查找-在排序数组中查找元素的第一个和最后一个位置

非递减数组,可以实现一个方法,找到每一个目标值的最左边索引,然后target+1起始索引的前一位就是最右边索引。:整型数组,存储开始位置和结束索引。:整型数组,目标整型变量。

2025-03-21 22:34:38 276

原创 回溯-单词搜索

搜索下一单元格: 朝当前元素的 上、下、左、右 四个方向开启下层递归,使用 或 连接 (代表只需找到一条可行路径就直接返回,不再做后续 DFS ),并记录结果至 res。返回 false : (1) 行或列索引越界 或 (2) 当前矩阵元素与目标字符不同 或 (3) 当前矩阵元素已访问过 ( (3) 可合并至 (2) )。标记当前矩阵元素: 将 board[i][j] 修改为 空字符‘\0’ ,代表此元素已访问过,防止之后搜索时重复访问。:遍历字符数组,下上右左递归回溯。:二维字符数组,给定字符串。

2025-03-21 21:30:19 324

原创 回溯-括号生成

使用回溯法,先append左括号,然后再append右括号,当左括号数量小于n时append,然后递归加回溯,右括号也同理。此题在解的时候考虑到了回溯,但是关于在哪里递归和回溯没有搞明白,还有。

2025-03-21 18:40:32 209

原创 技巧-只出现一次的数字

【代码】技巧-只出现一次的数字。

2025-03-20 21:32:22 187

原创 回溯-组合总和

表示当前在 candidates 数组的第 idx 位,还剩 target 要组合,已经组合的列表为 combine。递归的终止条件为 target≤0 或者 candidates 数组被全部用完。那么在当前的函数中,每次可以选择跳过不用第 idx 个数,即执行。,注意到每个数字可以被无限制重复选取,因此搜索的下标仍为 idx。也可以选择使用第 idx 个数,即执行。:此题目可以优化,进行剪枝操作。

2025-03-20 21:11:09 214

原创 二叉树-二叉树的最近公共祖先

二叉树头结点,两个结点pq。

2025-03-20 20:27:13 163

原创 回溯-电话号码的字母组合

【代码】回溯-电话号码的字母组合。

2025-03-18 19:10:01 131

原创 二叉树-路径总和III

使用前缀和,然后哈希表维护二叉树。:二叉树根结点,目标数。

2025-03-18 17:49:29 222

原创 二分查找-搜索二维矩阵

一次二分查找,将二维数组看成是一个一维数组,然后进行二分查找。二分查找的头为0,尾为数组的元素个数,中间值使用。注意在while循环中。

2025-03-17 20:09:39 235

原创 二叉树-从前序和中序中遍历序列构造二叉树

将中序遍历的结果存入哈希表中,然后通过前序遍历知道二叉树的根结点,然后递归。:二叉树的前序和中序遍历,两个整型数组。

2025-03-17 17:55:42 161

原创 实习笔试-数字重排列

使用BigInteger的gcd方法,返回最后生成的对象是否和原数字互质。

2025-03-16 16:01:10 296

原创 实习笔试-01字符转换小写字母

然后定义一个数组来存储0、1的当前索引。,进行StringBuilder拼接,使用StringBuilder来操作。,取出当前数字字符对应的小写字母链表。:01字符串,这里使用String。然后将当前字符指向下一个小写字符。,然后得到链表中的小写字符。

2025-03-14 21:51:59 257

原创 回溯-子集

在向result中添加新的元素时,应该创建一个副本,将tmpList传入,而不是直接加入tmpList,这样后续对tmpList的修改会影响result中的值,会使结果全部一样。:利用二进制,(比如说数组长度为3)000、001、010、011、100、101、110、111刚好可以遍历所有情况。20225.03.17二刷,使用回溯。但是关于此类问题,主要考察回溯的算法。

2025-03-10 17:32:41 256

空空如也

空空如也

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

TA关注的人

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