
Leetcode
文章平均质量分 87
LeetCode题目使用Java的解题思路+答案
xiao--xin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode100之合并K个升序链表(23)--Java
这道题如果大家做过合并两个有序链表类似的题的话,一点也不难,再稍微加上一点二分(或者说是归并)的思路,这道题轻轻松松就能AC的。原创 2025-03-13 14:45:00 · 1556 阅读 · 0 评论 -
LeetCode100之二叉树的最大深度(104)--Java
这道求最大深度的题,十分简单,我们只需要求出左右子树的最大深度,然后取左右子树深度的最大值+1就是以当前节点为根的树最大深度。原创 2025-03-13 09:30:00 · 415 阅读 · 0 评论 -
LeetCode100之翻转二叉树(226)--Java
这道题并不是很难,就是用后序遍历交换每一颗子树的左右节点而已。原创 2025-03-12 16:00:00 · 830 阅读 · 0 评论 -
LeetCode100之对称二叉树(101)--Java
这道对称二叉树的题目,分析好可能出现的情况之后,一点都不难,将分析得到的文字条件翻译成代码就好了。这道题我提供了递归和层序两种解法,有兴趣的可以看一下。原创 2025-03-12 09:00:00 · 1338 阅读 · 0 评论 -
LeetCode100之二叉树的直径(543)--Java
这道题,只需要理清几个概念直接的关系,就可以将问题简化成我们曾经做过的求深度问题,这样问题也就轻松解决了。原创 2025-03-11 17:30:00 · 1284 阅读 · 0 评论 -
LeetCode100之二叉树的层序遍历(102)--Java
这道题考察的是经典的层序遍历,总的来说不是很难,我提供了递归法和迭代法两种方法的代码,大家如果有兴趣的话,可以都看一看。原创 2025-03-11 10:00:00 · 642 阅读 · 0 评论 -
LeetCode100之将有序数组转化为二叉搜索树(108)--Java
这道题,只要明白二叉搜索树的概念,基本就没什么问题了。原创 2025-03-10 13:30:00 · 1466 阅读 · 0 评论 -
LeetCode100之验证二叉搜索树(98)--Java
这道题如果对树的遍历和二叉搜索树熟悉的话,一下子就能做出来,不熟悉的话,有可能会踩坑,是一道不错的题目。原创 2025-03-10 10:30:00 · 869 阅读 · 0 评论 -
LeetCode100之二叉搜索树中第K小的元素(230)--Java
这道题考察的是二叉搜索树的特点和树的遍历方法,我在这里提供了使用迭代方法的中序遍历,这个迭代方法可以看成一个模版,和递归遍历差不多,递归遍历只需要改一下单层递归逻辑中的节点顺序,就可以实现不同方式的遍历,这里的迭代法也只需要改变一下存入栈中节点的顺序,就可以实现不同方式的遍历,注意在遍历时存入根节点的时候要加上一个空节点进行标记。原创 2025-03-09 10:43:14 · 711 阅读 · 0 评论 -
LeetCode100之二叉树的右视图(199)--Java
这道题难度不大,考察的是二叉树的层序遍历,只需要将每一层的最后一个节点取出来就可以解决问题了。原创 2025-03-09 10:42:48 · 323 阅读 · 0 评论 -
LeetCode100之子集(78)--Java
这道题与第46题的求全排列大同小异,都用到了递归+回溯,这道题是使用了起始索引来实现去重和标识是否已经使用,而全排列那道题不需要去重,通过一个标识数组来标识是否已经使用,都是简单的for循环+回溯即可解决了。这道题今天就啰嗦到这,祝大家刷题愉快,早日上岸!原创 2025-01-28 19:45:34 · 753 阅读 · 0 评论 -
LeetCode100之全排列(46)--Java
这道题没什么太大的难度,采用回溯+递归的方法穷尽所有的排列可能,让每一个数在每一个位置都出现一次。原创 2025-01-27 22:55:53 · 715 阅读 · 0 评论 -
LeetCode100之在排序数组中查找元素的第一个和最后一个位置(34)--Java
这道题本质上还是一道二分查找题目,只要找到了一个target,其余的target就在我们找到的target前后。原创 2025-01-26 14:39:54 · 1027 阅读 · 0 评论 -
LeetCode100之排序链表(148)--Java
这道题,我们采用归并排序的方法来进行链表的排序,唯一要值得注意的点就是,在切分小链表时,尾指针的初始化值要初始化为头指针的下一个节点,这样递归调用时才不会陷入死循序。原创 2025-01-15 18:00:00 · 767 阅读 · 0 评论 -
LeetCode100之搜索旋转排序数组(33)--Java
这道题是一道绕了一下的二分查找问题,有难度的地方就在于我们如果确定并找到target所在的二分查找范围,解决了这一点之后,就变成了一道简单的二分查找问题了。原创 2025-01-15 12:00:00 · 826 阅读 · 0 评论 -
LeetCode100之搜索二维矩阵(46)--Java
这道题,如果对二分查找熟练的话,其实理解起来不难,要做出来也不难,只要定位到target在矩阵的哪一行,就变成了常规的二分查找了。原创 2025-01-14 13:27:09 · 1067 阅读 · 0 评论 -
LeetCode100之搜索插入位置(35)--Java
这道题是一道典型的二分查找题目,唯一可能卡住的地方就是如果目标值不在数组中,怎么确定目标值插入的位置,但其实这个我们只要举两个具体的例子就可以直观的知道怎么解决了。原创 2025-01-14 11:29:17 · 1050 阅读 · 0 评论 -
LeetCode100之N皇后(51)--Java
这道题是一道非常非常经典的题目,但其实难度并不大,只要将需要的条件用代码表示出来,就可以迎刃而解了。原创 2025-01-13 13:57:14 · 920 阅读 · 0 评论 -
LeetCode100之分割回文串(131)--Java
这道题,其实不是很难,唯一和之前递归回溯题目不太一样的地方就是,之前的题目的StringBuilder是从头到尾都是同一个对象,而在这道题里面,一个StringBuilder就是一个回文串,每一次调用递归方法都要重新new 一个StringBuilder。原创 2025-01-13 12:00:00 · 833 阅读 · 0 评论 -
LeetCode100之单词搜索(79)--Java
这道题要写出来不难,但是要减少搜索时间还是有一点难度的,统计word的字符个数和board进行比较和将word的字符串翻转的情况,没有做过类似的题的话,应该挺难想到的。原创 2025-01-12 13:52:04 · 1108 阅读 · 0 评论 -
LeetCode100之括号生成(22)--Java
这道题的核心的思想其实就是递归穷举,再加上一些限制条件的逻辑判断就解决了。原创 2025-01-12 00:08:52 · 464 阅读 · 0 评论 -
LeetCode100之组合总和(39)--Java
这道题容易做错的地方在于,一不小心就会获取到重复的组合,比如[2,2,3]和[2,3,2],这两个组合按照题意其实是一个组合,所以我们每一层递归都要有一个起始索引来防止取到比最后一个取出的数要小的其他数。这道题我觉得是一道蛮不错的递归回溯题目,挺有意思的。原创 2025-01-08 20:37:26 · 718 阅读 · 0 评论 -
LeetCode100之电话号码的字母组合(17)--Java
这道题是一个十分明显的递归回溯题目,我们只要将号码的数对应的字母挨个取出来,进行拼凑组合就可以搞定了。这道题就简单的啰嗦到这里原创 2025-01-08 19:49:27 · 838 阅读 · 0 评论 -
LeetCode100之K个一组翻转链表(25)--Java
这道K个一组翻转链表的题目一开始可能会有点摸不着头脑不知道如何去做,但只要将问题进行拆解,就会发现其实也不是很难,只要完成了其中一个K组,其他的不过就是依样画葫芦,直接递归调用前面的逻辑而已。原创 2024-12-22 20:20:28 · 798 阅读 · 0 评论 -
LeetCode100之随机链表的复制(138)--Java
这道题的解题思路很简单,就是用一个map集合存储新旧节点的映射,然后根据映射设置新节点的next指针和random指针就可以解决了。原创 2024-12-28 16:00:00 · 1971 阅读 · 0 评论 -
LeetCode100之二叉树展开为链表(114)--Java
这道题没啥难度,只需要将题目分成两部分,一部分前序遍历,另一部分展开成链表,就可以轻松解决了。原创 2024-12-27 11:00:00 · 819 阅读 · 0 评论 -
LeetCode100之从前序与中序遍历构造二叉树(105)--Java
这道题比较难的点有两个,第一个难的地方是如何找出前序遍历数组和中序遍历数组之间的关系,从而知道如何切分中序遍历数组;第二个难的地方是如何确定递归时两个遍历数组的起始位置,这个需要对切分的位置有一定的想象和对前序中序两种遍历方式足够的熟悉。原创 2024-12-26 19:00:00 · 710 阅读 · 0 评论 -
LeetCode100之LRU缓存(146)--Java
这道题要我们模拟LRU的基本思路写一个Cahce,只要我们理解了题目描述的LRU的原理,其实并不难写出来,这里我们采用的是双向链表+hash表的方法来实现。原创 2024-12-26 10:00:00 · 1053 阅读 · 0 评论 -
LeetCode100之路径总和III(437)--Java
这道题我们用前缀和进行优化的解法比求出每一个节点的路径的解法,在效率上相差了15倍左右,如果可以的话,我建议大家讲前缀和的这种方法掌握下来。原创 2024-12-25 16:00:00 · 967 阅读 · 0 评论 -
LeetCode100之二叉树的最近公共祖先(236)--Java
这道题就是简单的考察了一下后序遍历和对最近共同祖先的理解,不是很难。原创 2024-12-25 10:00:00 · 1182 阅读 · 0 评论 -
LeetCode100之二叉树中的最大路径和(124)--Java
这道题难度其实还行,关键是要分清楚两个最大和,一个是最大的路径和,一个子树的单方向最大路径和,最大的路径和是由左子树的一条单方向路径+当前的节点值+右子树的一条单方向路径组成。弄清除两个最大和之间的关系后,这道题基本就迎刃而解了。原创 2024-12-24 16:00:00 · 1863 阅读 · 0 评论 -
LeetCode100之岛屿数量(200)--Java
这道题是一道经典的图论问题,考察的是图的遍历方法,无论是深搜还是广搜都可以解决。我这里是用深搜来写的,如果大家对广搜有兴趣,也可以自行实现。原创 2024-12-24 10:00:00 · 1186 阅读 · 0 评论 -
LeetCode100之腐烂的橘子(994)--Java
这道题是一道多源广度优先搜索问题,很多做不出来的小伙伴可能是因为想不到如何记录分钟数,或者没想到这是一道多源的广搜问题,而是当成了一道单一的广搜问题,可以求出几个时间,但是没办法求出最短的时间。原创 2024-12-23 20:00:00 · 929 阅读 · 0 评论 -
LeetCode100之课程表(207)--Java
这道题考察的是判断一个图是否为有向无环图,也就是能不能使用拓扑排序,如果对拓扑排序遗忘或者不是很清楚的小伙伴,可以先去看一下有关拓扑排序的内容,再回来看这道题,可能会比较好理解一点。原创 2024-12-23 10:00:00 · 1690 阅读 · 0 评论 -
LeetCode100之实现Trie前缀树(208)--Java
这道题是叫我们实现一个高效查找单词和前缀的Trie,需要我们对数据结构有一点了解和经验。这里我们提供的思路是每一个节点有26个子节点,但是每一个单词在该节点只存放一个的字符,这样前缀相同的单词,可以复用相同的节点,用一个是否为单词的标记来提醒截止该节点,是否是一个存储在其中的完整单词。原创 2024-12-22 20:14:19 · 1221 阅读 · 0 评论 -
LeetCode100之反转链表(206)--Java
这道题理解好反转链表的四个步骤,这道题就迎刃而解了。原创 2024-11-17 15:45:00 · 685 阅读 · 0 评论 -
LeetCode100之回文链表(234)--Java
这道回文链表的题十分简单,我们只需要得到原链表的反转链表,然后与原链表进行比较就可以知道是否为回文链表了。原创 2024-11-17 12:00:00 · 1103 阅读 · 0 评论 -
LeetCode100之环形链表(141)--Java
这道环形链表的题,我们当成小学的追及相遇问题就可以轻松解决了。原创 2024-11-16 20:00:00 · 727 阅读 · 0 评论 -
LeetCode100之环形链表||(142)--Java
这道题是在是否是环形链表的基础上,多加了找到入环第一个交点的要求,要解决这个问题,用到了一点数学的计算,不过也不是很难,还是在可以接受的范围之内的,得出相关的数学表达式之后,这道题就迎刃而解了。原创 2024-11-16 12:00:00 · 1776 阅读 · 0 评论 -
LeetCode100之合并两个有序链表(21)--Java
这道题只要发现它合并的规律,将重复的那个操作抽取出来变成递归操作,这道题解起来就只是两三行代码的问题了。原创 2024-11-15 20:00:00 · 1086 阅读 · 0 评论