python
文章平均质量分 77
力扣刷题
..verifier
这个作者很懒,什么都没留下…
展开
-
力扣刷题0712
自己理解题目:利用左节点遍历,先统计共有多少层,再通过while cnt>0循环:先判断根节点是否为空(第一层),不为空再判断左右节点是否为空,不为空的都加入到列表中(第二层)。反思总结:思路很混乱,写代码时对循环内部的顺序不能合理安排,删除自己写的代码,根据优先队列的思路,写出正确代码,但递归思路还没完全明白思路。给你二叉树的根节点 root ,返回其节点值的 层序遍历。给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。自己理解题目:左右节点交换。自己理解题目:没有思路。原创 2023-07-12 10:51:35 · 40 阅读 · 0 评论 -
力扣刷题0711
总结迭代法前序遍历: class Solution : def preorderTraversal(self , root : TreeNode) - > List [ int ] : result = [ ] st = [ ] if root : st . append(root) while st : node = st . pop() if node!原创 2023-07-11 17:45:30 · 34 阅读 · 0 评论 -
力扣刷题0717
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。自己理解题目:一开始以为是找最左边节点,不考虑最底层,报错,结果找最底层最左边节点。给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。叶子节点 是指没有子节点的节点。原创 2023-07-17 13:18:08 · 40 阅读 · 0 评论 -
力扣刷题0713
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数后者节点数(取决于高度从0开始还是从1开始)自己理解题目:遍历左子树,遍历右子树,分别记录层数,然后取最大值,想法是这样,但是写出来无法通过。二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)说明:叶子节点是指没有子节点的节点。原创 2023-07-13 10:53:13 · 32 阅读 · 0 评论 -
力扣刷题0714
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。自己理解题目:根据前序遍历+回溯方法得到 路径组合,然后拼接转换格式。一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。自己理解题目:左叶子之和是左节点,也是叶子节点。给定二叉树的根节点 root ,返回所有左叶子之和。反思总结:迭代法更好理解样,反倒递归法还不是很懂。给定一个二叉树,判断它是否是高度平衡的二叉树。自己理解题目:暴力求左右高度差,判断再返回。叶子节点 是指没有子节点的节点。原创 2023-07-14 11:26:10 · 22 阅读 · 0 评论 -
力扣刷题0708
自己理解题目:第一想法是定义一个函数,查找字符串中的相邻的相等字符,然后删除,返回自己调用自己的返回值,主函数中调用这个函数即可。自己理解题目:首先想着用两个列表分别添加左右括号,然后依次弹出,判断是否配对,写出代码但不能通过全部测试用例。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。反思总结:由于栈结构的特殊性,非常适合做对称匹配类的题目。原创 2023-07-08 11:46:25 · 41 阅读 · 1 评论 -
力扣刷题0710
链接。原创 2023-07-10 18:32:06 · 32 阅读 · 1 评论 -
力扣刷题0706
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。反思总结:本题是KMP算法经典题目,KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。对当前文本串和模式串的检索过程中,若出现了不匹配,如何充分利用已经匹配的部分。反思总结:KMP算法可以解决字符串匹配时多次重复比对问题,先记住模板再找规律吧。自己理解题目:直觉要用KMP,不知道怎么用。原创 2023-07-06 11:21:49 · 240 阅读 · 1 评论 -
力扣刷题0705
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。反思总结:数组,链表,字符串的常用方法:双指针法,前面的学了小白又忘了,必须复习啊。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。自己理解题目:首先想到的是reverse,其次是s[::-1],都是取巧的办法,然后看答案,说是可以用双指针,然后才恍然大悟。给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。编写一个函数,其作用是将输入的字符串反转过来。原创 2023-07-05 11:54:05 · 417 阅读 · 0 评论 -
力扣刷题0707
反思总结:用两个队列实现栈思路如下:加入栈直接append,弹出栈则需要两个列表实现,一个加入列表和一个取出列表,加入之前先判断栈是否为空,不为空,再判断取出列表是否为空,不为空直接弹出,为空则将加入列表中的元素都append到取出列表中,再弹出元素即可。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。原创 2023-07-07 10:46:40 · 101 阅读 · 1 评论 -
力扣刷题0703
自己理解题目:两个数之和,用tmp做中间变量(和-数组元素),判断tmp是否在数组中,在的话满足题目要求加入结果列表,不在就跳过;自己理解题目:数组交集定义:交集内的元素都在两个数组内,且要求输出元素不重复,利用集合定义交集,分别遍历两个数组,判断每个元素是否在另一个数组中,在就加入集合,最后转为列表。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。反思总结:解法很多,暂未完全掌握,继续理解代码。原创 2023-07-03 21:29:45 · 536 阅读 · 1 评论 -
力扣刷题0630
后面就采用链表+列表的形式实现,即只在列表中存入满足要求的节点值,然后将列表转换成链表,比较迂回了。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。val 是当前节点的值,next 是指向下一个节点的指针/引用。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2023-06-30 17:10:16 · 78 阅读 · 0 评论 -
力扣刷题0701
自己理解题目:建一个虚节点,其下一个节点是头节点,遍历整个链表,计数变量计数到2时,交换pre和cur的值,并重新计数,遍历完后返回头节点,全部过程中只完成值的赋值,指针不变化。自己理解题目:相交的意思没搞明白,一看题解,相交就是遍历到该处时两个链表的指针相等,即curA==curB,属于题目理解不透的问题写不出来。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。反思总结:1、当输入头节点为[ ]时,如果return [ ] 会报错,自己理解的是因为返回的是链表,不能是列表。原创 2023-07-01 17:17:40 · 719 阅读 · 0 评论 -
力扣刷题0704
自己理解题目:按照之前利用字典字符串查找的题目思路,先统计magazine中的字符个数并存入字典,然后遍历ransomNote字符串是否在字典中,存在就减1,不存在就Flase,最后遍历字典,其值若有负数,说明这个字母的个数不够,返回Flase。给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。反思总结:自己对这种题型还是理解不深,尤其是剪枝部分。原创 2023-07-04 11:53:07 · 522 阅读 · 0 评论 -
力扣刷题0629
如果不存在符合条件的子数组,返回 0。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。自己题目理解:直接遍历平方再sort,或者利用快慢指针再排序(开始将i++和n–统一放在循环尾部,结果排出来一半数据。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。---------暴力解法---------超出时间限制。--------滑动窗口--------原创 2023-06-29 12:01:18 · 56 阅读 · 1 评论 -
力扣刷题230628
给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。元素的顺序可以改变。自己题目理解:直接暴力求解,设置一个中间数组tmp,当遍历数组nums时,如果当前元素不等于val,则将当前元素添加到tmp中。给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。******一开始,总是报错,结果发现返回的不是下标,而是target。原创 2023-06-28 16:01:31 · 1528 阅读 · 1 评论