摘要: 本组囊括二叉树中由求路径总和的相关题目,最后做一个小小扩展。 129. Sum Root to Leaf Numbers 题目描述:中等 解法一:dfs 每层需要乘上10,递归实现,考虑dfs;用一个sum来保存当前路径的和,用ans来保存当前所有路径的总和每到一个子节点,sum = 子节点的值+s 阅读全文
posted @ 2020-11-10 10:37 Jesse-jia 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树中由前中后序中某两序来重新构造树的题目,难度均为中等。三题采取统一模板。 105. Construct Binary Tree from Preorder and Inorder Traversal 题目描述:中等 解法一:递归 递归的dfs想法很直接,就是通过相对位置来递归地构造左右 阅读全文
posted @ 2020-11-10 10:36 Jesse-jia 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树各序遍历的题目,难度不等。 144. Binary Tree Preorder Traversal 题目描述:中等 解法一:递归 递归的dfs很简单,特别是用于前中后序三种遍历,只要该节点做好自己的事,就开启下一个顺序的节点的递归。 1 class Solution: 2 def pr 阅读全文
posted @ 2020-11-10 10:34 Jesse-jia 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树相关题目,难度不等。 思路一: DFS。相对于最大深度来说,最小深度需要多考虑一点:即到达节点的其中一个儿子为空另一个非空,需要返回非空儿子的高度+1,作为本节点高度而非返回较小值。这一点解决后就是常规的递归操作了。 1 class Solution(object): 2 def mi 阅读全文
posted @ 2020-11-10 10:31 Jesse-jia 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 61. Rotate List 题目描述:中等 解法一: 官方题解:使用成环的思想,原链表连成环,再断开环和生成新链头和链尾即可;首先将原链表的链头和链尾连接起来形成环,然后再n-k的节点后断开环,下一个节点n-k+1即是新的链表的链头,n-k是新链表的链尾。 上述 阅读全文
posted @ 2020-11-10 10:28 Jesse-jia 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 24. Swap Nodes in Pairs 题目描述:中等 解法一: 考虑迭代解法,如果要两两交换相邻的节点,则这些节点肯定是相邻的奇偶节点,使用两个指针来遍历所有的奇偶节点。交换后将新节点的头指向第二个的头即可;除了一个哨兵外,还需要定义一个指针current 阅读全文
posted @ 2020-11-10 10:26 Jesse-jia 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 2. Add Two Numbers 题目描述:中等 思路一: 主要难点是进位的问题,使用取模和整除来求解,具体看代码中的注释: 1 # Definition for singly-linked list. 2 # class ListNode: 3 # def _ 阅读全文
posted @ 2020-11-10 10:24 Jesse-jia 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 本组囊括字符串相关题目,难度均为简单。 58. Length of Last Word 题目描述:简单 解法一: python中的split能很好地解决这个问题:使用split删除空格后逆着遍历即可得到第一个非空字符的长度: 1 class Solution: 2 def lengthOfLastW 阅读全文
posted @ 2020-11-10 10:22 Jesse-jia 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 本组囊括字符串相关题目,难度均为简单。 20. Valid Parentheses 注:此题也归为栈类。 题目描述:简单 使用栈这一数据结构完成本任务,把开括号按顺序放入栈顶,每遇到一个闭括号,就弹出栈顶元素,看是否和此闭括号匹配。遍历完字符串后若栈为空,则说明都匹配,返回true,反之则返回fal 阅读全文
posted @ 2020-11-10 10:20 Jesse-jia 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 本组囊括字符串相关题目,难度不等。 3. Longest Substring Without Repeating Characters 题目描述:中等 想到的第一种思路是暴力解法,遍历数组每次去找最长不重复子串,最后这些子串比长短。时间复杂度太高O(n²)。 此题的模式识别一:看到不含有重复,即只出 阅读全文
posted @ 2020-11-10 10:18 Jesse-jia 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 本组囊括数组相关题目,且只包括两道有关杨辉三角的问题。 118. Pascal's Triangle 题目描述:简单 首先要知道杨辉三角:每个数等于它左上方和右上方两数之和,那么如果能够知道一行杨辉三角,我们就可以根据每对相邻的值轻松地计算出它的下一行。类似这种迭代的思想,官方也把它归到动态规划的思 阅读全文
posted @ 2020-11-10 10:15 Jesse-jia 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 本组囊括数组相关题目,且只包括两道有关数学的问题。 1. Two Sum 题目描述:简单 首先可以想到暴力解法,很简单,遍历每个元素x,并查找是否存在一个值与target - xt相等的目标元素。 时间复杂度:O(n^2):对于每个元素,我们试图通过遍历数组的其余部分来寻找它所对应的目标元素,这将耗 阅读全文
posted @ 2020-11-10 10:13 Jesse-jia 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 本组囊括数组相关题目,难度不等: 66.Plus One 题目描述:简单 这道题的思路就是数组末位加一:由于数字是十进制,于是这里考虑的就是逢十进一的情况:(1)末位为9,如149 (2)除了首位外其他多位为9,如199 (1)全为9,如999 解法一: 这里可以看到都是从末位开始判断,于是可以想到 阅读全文
posted @ 2020-11-10 10:12 Jesse-jia 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 本组囊括数组相关题目,难度不等: 35.Search Insert Position 题目描述:简单 这是一个简单的二分查找问题,只不过最后寻找完后未找到就返回Low而不是None,这里即可返回目标值应插入位置,注意:这里的重点在于二分法的边界条件不要弄错,记住这个模板。 1 class Solut 阅读全文
posted @ 2020-11-10 10:07 Jesse-jia 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 本组囊括数组相关题目,难度不等: 27.Remove Element 题目描述:简单 注意不能使用额外空间。 解法一: 拷贝覆盖:,其实这也是双指针中的快慢指针思想。 可以想到的是,我们设置一个新的数组下标ans初始为0,遍历原来的数组,当数组中的值等于val值时,则跳过该数字;当不等时,则拷贝并覆 阅读全文
posted @ 2020-11-10 10:03 Jesse-jia 阅读(146) 评论(0) 推荐(0) 编辑