leetcode
Neveah Chen
这个作者很懒,什么都没留下…
展开
-
Leetcode168 Leetcode171 | excel表列名称 Excel 表列序号
再接下来就是进位了27就是AA但是我们要小心一点就是进制是从0开始比如二进制是01表示根本没有2,十进制只有123456789没有10,所以我们的26进制其实是要从0开始,我们必须对他进行偏移为啥要压栈呢?对照二进制的短除法原创 2022-10-16 11:43:17 · 169 阅读 · 0 评论 -
Leetcode169|多数元素
多数元素的定义是出现次数要大于n/2就意味着一个数组就只能有一个人这样的数hashmap有个函数getOrDefaul可以按键查值,如果没值阔以给他赋初值原创 2022-10-16 10:54:54 · 175 阅读 · 0 评论 -
Leetcode160|相交链表
用俩指针先遍历俩链表,找出更长的先走掉长的那部分,剩下的就是和短链表一样的长度了, 长短一样同时开走,指针相遇点就是链表相交点原创 2022-10-16 10:27:26 · 122 阅读 · 0 评论 -
Leetcode145|二叉树的后续遍历 非递归实现 用辅助栈or只用一个栈
我们可以用c来记录栈顶元素,root用来跟踪刚弹出的节点如果c是刚到的:1.c(栈顶元素)的左孩子不为null 2.root(刚弹出的节点)不是c(栈顶元素)的左孩子 3.root(刚弹出的节点)不是c(栈顶元素)的右孩子即if语句对应的条件左树没有被处理的情况,把栈顶c的左孩子压栈elseif即右树没有被处理的条件1.栈顶的右孩子不为空2.刚弹出的节点root不是栈顶元素c原创 2022-10-15 19:07:21 · 238 阅读 · 0 评论 -
Leetcode144| 二叉树的前序遍历非递归 自己压栈
虽然我们这是非递归实现,但是我还是要讲一下递归序递归序号就是每个节点我们实际是到达三次的比如这题是先序就是:头左右我们不管什么序,先来遍历吧112333221先序是打第一次出现的时候所以是123我们如何通过自己压栈实现呢这样一来头节点都是进去就迅速被弹出,顺着进去又弹出的头,把他的右孩子压进去,再压它的左孩子,此时栈内有他的左右孩子栈不空所以,弹出它的左孩子,又把左孩子的右左孩子压进去原创 2022-10-15 17:20:51 · 147 阅读 · 0 评论 -
Leetcode141| 环形链表 循环条件的两种跳出方式
其实单纯看有没有环可以只用hashset,因为它默认没有重复的元素,我们遇到下一节点值是在·hashset里存过的就应该意识到有环了,加上pos是可以看到它尾部连到第几个节点去了题解我们顺着节点往下走,把每个路过的节点都加到map里,跳到下一个节点立马检查是否在map里已经含有这个节点了,如果有了说明有环就跳出循环,这会是依然满足循环条件的还有一种跳出是不在满足循环条件的,那会是链表走到头了,还是没有重复的,这两种跳出要区分一下,跳出后依然满足循环条件的是有环我们返回true,其他返回fals原创 2022-10-15 12:02:36 · 155 阅读 · 0 评论 -
Leetcode136|只出现一次的数字 异或的妙用
异或性质是对或性质的加强,或是只要有一个1就是1(包括10,01,11)“异或”运算,两个值不同,结果才是1(只包括10,01)0与任何数异或都是它本身 0^N==N任何数与自己异或都是0 N^N==0异或满足交换律与结合律这就意味着同一批数异或起来结果是一样的原创 2022-10-15 11:47:28 · 161 阅读 · 0 评论 -
Leetcode125|验证回文串,怎么区分这两种循环跳出非正常跳出是依然满足循环条件却不循环了,正常跳出是不在满足进入循环的条件了
我们首先要预处理,把大小写统一,剔除字母外的干扰字符然后把预处理完成后的字符串开始两指针押着向中间走,只要一个循环下来没有于是对不上的情况不满足条件自然会跳出返回false别忘了还有一种非正常跳出循环的方式,就是遇到接不头的,我们怎么区分这两种循环跳出呢非正常跳出是依然满足循环条件却不循环了,正常跳出是不在满足进入循环的条件了原创 2022-10-15 11:23:25 · 110 阅读 · 0 评论 -
Leetcode121,Leetcode122| 买卖股票的最佳时机,买卖股票的最佳时机 II
首先我们要明确一个概念叫做局部最小值什么意思呢,我们知道高数里一个函数求最值,找出定义域内倒数为0的点和定义域的边界点,比较这几点的函数值我们只卖卖一次股票,就找这个数组内差值最大的俩天卖出有朋友会说(无中生有)那就找出数组最小值然后在他之后找那个范围的最大值不就行了大错特错:我们得找差值最大如果还不理解可以看看【7,100,3,6,4】,按照朋友的说法找出最小值3然后他之后的最大值是6,只赚了3rmb。资本家看了感动落泪,7和100差值就证明被忽略了所以我们用个数,通过和他比较找出原创 2022-10-15 11:08:41 · 71 阅读 · 0 评论 -
Leetcode118,Leetcode119| 杨辉三角 杨辉三角 II
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。原创 2022-10-14 19:38:46 · 56 阅读 · 0 评论 -
Leetcode112|路径总和
给你二叉树的根节点root 和一个表示目标和的整数targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。看到递归我们已经很熟悉了,本质是拆分成小问题返回给上层调用,最终重构栈顶现场我们目前的栈顶是节点5判断有无满足条件的通路节点5调用递归函数,不满足停止条件,targetSum=22-5=17,他也不是叶子节点所以拆分为小问题左右是否原创 2022-10-14 12:25:25 · 185 阅读 · 0 评论 -
Leetcode108| 将有序数组转换为二叉搜索树
何构建搜索二叉树的呢,首先我们要明确搜索二叉树的概念二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势根据这是一个有序数组我们可以知道头节点必然是中点位置的节点原创 2022-10-14 10:05:03 · 86 阅读 · 0 评论 -
Leetcode104,Leetcode111.|二叉树的最大深度,二叉树的最小深度
要如何把最大深度求出来呢?我们可以利用递归方法去掉这两句行不行?不行,当遇到这种情况会出现错误他会一直给上层调用反馈左右子树更小的层数,比如5节点,因为他的左孩子为第0层右孩子为第1层,如果不给他加这俩句,5这个节点他就认为什么男人至死是少年以为i自己是0+1第一层,一路往首先我们明确递归是不断拆分大问题,解构成小问题把小问题的答案用于构建大问题的答案,通过回溯,实现问题的解答递归实际上是利用系统栈实现的,保存当前的调用现场去执行子问题,子问题的返回作为现场需要的参数回填,最终还原栈顶现场原创 2022-10-13 20:20:41 · 87 阅读 · 0 评论 -
Leetcode102| BFS二叉树的层序遍历
层序遍历BFS一般都是需要用队列来辅助实现,分层打印二叉树原创 2022-10-13 18:28:10 · 153 阅读 · 0 评论 -
Leetcode100,Leetcode101| 相同的树 ,对称的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。给你一个二叉树的根节点 root , 检查它是否轴对称。原创 2022-10-13 11:53:41 · 103 阅读 · 0 评论 -
Leetcode94|二叉树的中序遍历
给定一个二叉树的根节点root,返回它的中序遍历原创 2022-10-06 21:22:36 · 133 阅读 · 0 评论 -
Leetcode110| 高度平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。原创 2022-10-01 00:30:30 · 270 阅读 · 0 评论 -
假ACM模式|Leetcode83|老白删除排序链表中的重复元素
给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。快慢指针原创 2022-09-28 20:34:24 · 221 阅读 · 0 评论 -
java|Leetcode70| 老白写爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。原创 2022-09-28 19:51:55 · 106 阅读 · 0 评论 -
假ACM模式|leetcode67| 老白二进制求和
装箱,给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和原创 2022-09-28 16:35:48 · 101 阅读 · 0 评论 -
ACM模式|leetcode66.加一|java老白刷题笔记
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一原创 2022-09-28 16:14:45 · 444 阅读 · 0 评论 -
面试题 01.02. 判定是否互为字符重排
给定两个字符串s1和s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。原创 2022-09-28 10:33:59 · 98 阅读 · 0 评论 -
ACM模式|双向链表的反转
双向链表的反转原创 2022-09-26 22:15:58 · 177 阅读 · 0 评论 -
ACM模式|给头节点反转链表|剑指 Offer 24. 反转链表
如何给个头节点让你反转链表之后返回新的头节点acm模式原创 2022-09-26 21:26:33 · 448 阅读 · 0 评论 -
26. 删除有序数组中的重复项
快慢指针删除冗余值原创 2022-09-26 10:49:57 · 51 阅读 · 0 评论 -
leetcode20.有效的括号
栈进行有效括号的判断原创 2022-09-26 00:00:58 · 51 阅读 · 0 评论