- 博客(41)
- 收藏
- 关注
原创 leetcode 搜索插入位置 java
最后跳出循环时,left>right。在跳出循环前,left= mid=right。为什么最后return 的是left。
2025-06-15 22:17:06
62
原创 leetcode 路径总和III java
参考leetcode上大神的思路:https://leetcode.cn/problems/path-sum-iii/solutions/596361/dui-qian-zhui-he-jie-fa-de-yi-dian-jie-s-dey6,添加了自己的注释。前缀和为Long类型。recur函数里要有。,或者宏观定义一下。
2025-06-12 17:28:00
249
原创 leetcode 从中序与后序序列 or 从前序与中序序列 构造二叉树 java
2.2 找到前序遍历的第一个元素or 后序遍历的最后一个元素在中序遍历中的位置。2.5 创建root.left和root.right。2.4 保存中序左子树个数,用来确定后序数列的个数。2.1 判断有没有元素,没有的话返回null。从中序与后序遍历序列构造二叉树。从前序与中序遍历序列构造二叉树。2.3 构造root节点。
2025-06-12 16:18:08
251
原创 leetcode 两两交换链表中的节点 java
递归法:参考了Leetcode评论区大神的方法,很直白!如果觉得很绕的话,直接把节点都定义出来。我首先想到的是迭代,因为我不会用递归。两种方法:递归法和迭代法。
2025-05-24 16:59:46
326
原创 leetcode 两数相加 java
一开始没看懂题目,没明白逆序是啥意思,原来就是从右向左看链表。返回链表的时候,只需要返回链表的头节点即可,即返回了整个链表。算法和代码都可以参考这篇博客,只不过这个是c++版本的。
2025-05-24 14:59:12
245
原创 leetcode 旋转数组 java
将原数组下标为 i 的元素放至新数组下标为 (i+k)modn 的位置,最后将新数组拷贝至原数组即可。本来想用栈或者队列来解决,发现一直报k>nums.length的错。
2025-05-20 22:59:25
298
原创 leetcode 和为 K 的子数组 java
定义一个hashmap,key为前缀项和,value为前缀项和出现的次数。一开始没太理解题目是啥意思,后来看了一下解题,才读懂题目。,就是要看一下之前的前缀项和有没有等于pre-k的。前缀项和+hashmap。
2025-05-20 17:46:36
81
原创 leetcode 字母异位词分组 java
先把strs字符串数组中的每个字符串排序,排序后的字符串作为list的key。每个字符串被加到对应key的list中。把list再加到map中,最后返回map的value。
2025-05-18 17:27:56
115
原创 leetcode 最长公共子序列 java
一开始没用动态规划写,虽然写出来了,但是提交的时候一直报错,也不知道怎么改,就看了解题,用了动态规划。
2025-05-17 17:41:25
197
原创 leetcode跳跃游戏I 和II 总结
搜了很多博客,还是不理解思路,想到代码随想录有两道题,当时我也是理解了,现在再重新复习和整理一下思路。跳跃游戏I 只需要判断能不能到达数组末尾,而跳跃游戏II还需要确认到达数组末尾之后需要最小的步数。,因为i超过了当前能到达的最远距离。贪心算法,但是不知道贪心在哪儿。,那么就要执行下一步,
2025-05-11 16:00:26
166
原创 leetcode 前k个高频元素 java
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。关于Map的讲解,参考博客https://blog.csdn.net/Sunshineoe/article/details/122016550。keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。Map提供了一些常用方法,如keySet()、entrySet()等方法。
2025-05-10 17:13:14
130
原创 leetcode 数组中的第k大元素 java
以数组某个元素(一般选取首元素)为基准数,将所有小于基准数的元素移动至其左边,大于基准数的元素移动至其右边。对 左子数组 和 右子数组 递归执行 哨兵划分,直至子数组长度为 1 时终止递归,即可完成对整个数组的排序。但是面试的时候不能就这么写吧,就开始学leetcode官方给出的第二种方法。下图展示了数组 [2,4,1,0,3,5] 的快速排序流程。参考leetcode评论区,这种方式确实好理解一些。一开始直接用类自动排序,贼拉方便。
2025-05-10 15:56:48
129
原创 leetcode每日温度java
之后参考了这篇博客和卡码笔记https://blog.csdn.net/xiaoshiguang3/article/details/145503217。要注意while()的&&左右顺序不能更改,要不然还是会报栈为空的错。知道用栈,但是不知道怎么用,最后自己用数组写出来了,但是超出时间限制。
2025-05-10 15:14:06
138
原创 leetcode字符串解码
Java Character.isWhitespace() 方法,判断字符是否为空白字符。Java Character.isUpperCase() 方法,判断字符是否为大写字母。Java Character.toUpperCase() 方法,将小写字符转换为大写。Java Character.toLowerCase() 方法,将大写字符转换为小写。Java Character.isLetter() 方法,判断字符是否为字母。Java Character.isDigit() 方法,判断字符是否为数字。
2025-05-09 23:30:59
305
原创 最小栈leetcode
这道题需要定义两个栈,一个正常存储,另一个只存储最小值。当正常栈删减时,最小栈需要进行实时更新最小值。我一看到这种类似底层的题就有点怕,生理畏惧,但是还是要硬着头皮学。
2025-05-09 22:25:33
116
原创 leetcode 岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。输入:grid = [输出:1输入:grid = [输出:3grid[i][j] 的值为 ‘0’ 或 ‘1’
2025-04-29 21:36:52
235
原创 java基础常见面试题笔记(上)——JavaGuide
从字节码中,我们发现装箱其实就是调用了包装类的valueOf()方法,拆箱其实就是调用了 xxxValue()方法。因此,等价于等价于注意:如果频繁拆装箱的话,也会严重影响系统的性能。我们应该尽量避免不必要的拆装箱操作。
2025-04-08 10:10:35
697
原创 黑马点评redis秒杀优化,uerid为空报错
获取用户id时,不能通过threadlocal获取,因为这是个异步的子线程,需要从voucherOrder中取。
2025-04-01 23:21:18
111
原创 黑马点评分布式锁——个人笔记
满足分布式系统或集群模式下多进程可见并且互斥的锁就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路本项目采用redis利用setnx获取锁,实现互斥。利用setex实现锁的超时自动释放。(采用opsForValue的setIfAbsent方法,确保每次只有一个锁存在,同时增加过期时间,防止死锁。在返回那里,返回的是Boolean.TRUE.equals(success);而不是直接返回success,这样不会返回空指针。
2025-04-01 16:39:22
418
原创 黑马点评实战商户查询缓存——个人笔记
这部分内容需要理解的东西还是很多的,而且我没有完全将代码和原理结合起来理解,还需要再好好看看代码和视频。这篇笔记中,如有抄袭侵权其他文章,请文章作者联系我哦~
2025-03-26 19:07:35
654
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人