首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode每日一题
okokabcd
创建于2021-10-15
订阅专栏
LeetCode每日一题
暂无订阅
共132篇文章
创建于2021-10-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
leetcode 287. Find the Duplicate Number 寻找重复数 (中等)
这道题给我们n+1个数,所有的数都在[1, n]区域内,首先让证明必定会有一个重复数,题目要求不能改变原数组,即不能给原数组排序,又不能用多余空间,那么hash的就不用考虑了,又要求时间小于O(n^2
leetcode 191. Number of 1 Bits 位1的个数(简单)
思路1:n & 1如果为1,ans=ans+1,然后再n向右移一位,直到n=0,返回ans。注意:因为是Java实现所以要用for 思路2:先判断如果n!=0,ans++,令n = n&(n-1),
leetcode 15. 3Sum 三数之和(中等)
sortfind,整个数组排序O(NlogN),以示例1为例,先排序为[-4, -1, -1, 0, 1, 2],定义一个a遍历,再遍历求b,c,此时令b等于a接下来的第一个元素,c为最后一个元素,判
leetcode 450. Delete Node in a BST 删除二叉搜索树中的节点 (中等)
这道题让我们删除二叉搜索树中的一个节点,难点在于删除完节点并补上那个节点的位置后还应该是一棵二叉搜索树。被删除掉的节点位置,不一定是由其左右节点补上,
leetcode 380. Insert Delete GetRandom O(1) O(1) 时间插入、删除和获取随机元素 (中等)
这道题有个限制在常数时间范围内实现插入删除和获得随机数操作,没有该限制的话直接用一个HashSet就可以搞定。我们利用一个可变list和一个HashMap,其中list用来保存数字,HashMap用来
leetcode 146. LRU Cache LRU 缓存 (简单)
LRU是Least Recently Used的简写,是最近最少使用的意思。 这个缓存器主要实现两个方法,get和put。我们用List来存储缓存数据,用map来存储key与value的映射, 实
leetcode 220. Contains Duplicate III 存在重复元素 III(困难)
这道题关注与不同值之间的关系,有两个限制条件,两个数字的坐标差不能大于k,值差不能大于t。还是用map结构来记录值和下标的映射。这里定义两上变量i和j,开始都指向0,然后i开始向右遍历数组,如果i和j
leetcode 219. Contains Duplicate II 存在重复元素 II(简单)
本来要刷210.存在重复元素III的,发现上一题就是II,于是就先刷这题了。这道题限制了数组中只许有一组重复的数字,而且其坐标差不能超过k。用map来解决,定义一个map,来记录每个数字和其坐标的映射
leetcode 785. Is Graph Bipartite判断二分图 (中等)
利用队列和广度优先搜索,我们可以对未染色的节点进行染色,并且检查是否有颜色相同的相邻节点存在,在代码中我们用0表示未检查的节点,用1和2表示两种不同的颜色
leetcode 236. Lowest Common Ancestor of a Binary Tree 二叉树的最近公共祖先(中等)
这是 二叉搜索树的最近公共祖先 这题的衍生题,这道题是普通的二叉树,不是二叉搜索树,所以就不能利其特有的性质,只能在二叉树中来搜索p和q,然后从路径中找到最后一个相同的节点即为父节点,可以用递归来实现
leetcode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 (中等)
分析一下用非递归方法的思路:跟前序、中序、层序一样都要用到栈,后序的顺序是左 右 根,所以当一个节点值被取出来时,它的左右子节点要么不存在,要么已经被访问过了。先将根结点压入栈,然后定义一个辅助结点
leetcode 94. Binary Tree Inorder Traversal 二叉树的中序遍历(中等)
二叉树的中序遍历顺序为左 根 右,可以用递归和非递归来解。递归解法十分直接,对左了节点调用递归函数,根节点访问值,右子节点再调用递归函数。 非递归有两种方法,一种使用栈:从根节点开始,先将根节点压入
leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前序和后
先序遍历顺序是根左右,后序遍历顺序是 左右根,要建立树,肯定要从根节点开始创建,然后再创建左右子节点,根据先序和后序的特点,根节点的位置是固定的,即是先序遍历的第一个,又是后序遍历的最后一个,知道了根
leetcode 530. Minimum Absolute Difference in BST二叉搜索树的最小绝对差 (简单)
这道题给我们一棵二叉搜索树,让我们求任意个节点值之间的最小绝对差。由于BST的左<根<右的性质可知,如果按照中序遍历会得到一个有序数组,那么最小绝对差肯定在相信的两个节点值之之间产生。
leetcode 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(简单)
求二叉树的最小共同父节点,可以用递归来求解,同志二叉搜索树的特点是左<根<右,所以根节点的值一直都是中间值,大于左子树的所有节点值,小于右子树的所有节点值,我们可以做如下判断,如果根节点的值大于p和q
leetcode 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树(简单)
可以将中序遍历左根右的顺序逆过来,变成右根左的顺序,这样可以反向计算累加和sum,同时更新节点值。。
leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)
求二叉树的最左下树节点的值,也就是最后一行左数第一个值,可以用先序遍历来做,维护一个最大尝试和该尝试的节点值,由于先序遍历遍历的顺序是根左右,所以每一行最左边的节点肯定最先先遍历到,由于是新一行,那么
leetcode 226. Invert Binary Tree 翻转二叉树(简单)
翻转二叉树是树的基本操作之一,可以使用递归和非递归两种方法。递归方法:交换当前左右节点,并直接调用递归即可。
leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)
思路1:子树必须是从叶节点开始的,中间部分的不能算是子树,转换一下思路,从root的某个节点开始,就跟subRoot的所有结构都一样,那么问题就转换成了判断两棵树是否相同
leetcode 617. Merge Two Binary Trees 合并二叉树(简单)
直接用递归调用给定函数,先判断如果root1为空返回root2,如果root2为空返回root1,都存在的情况下建立新节点node,然后对root1和root2的左子节点调用递归并赋给node的左子节
下一页