摘要: 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 本题依然是排序算法,怎么排序示例二: str( x ) + str( y ) > str( y ) + str( x ) 则让 x 排列在 y 的前面,但是需要借助cmp_to_key: https://zhuanlan.zhihu.co 阅读全文
posted @ 2020-03-15 17:32 ChevisZhang 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 给出一个区间的集合,请合并所有重叠的区间。 思路: 1.先将 list of lists 用sort排序, 本题中根据list第一个元素进行sort可以直接 .sort() a)如果需要使用 list.sort(key = function) ,可参考 https://www.cnblogs.com 阅读全文
posted @ 2020-03-15 11:44 ChevisZhang 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 原思路(错误的): *)忽略了DFS只能决定 当前节点下一层的遍历顺序, 不能决定本层的所有节点遍历顺序,所以需要用到双向列表的数据结构。 from collections im 阅读全文
posted @ 2020-03-10 17:11 ChevisZhang 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 本题像抄了个作业,索然无味,改天再多刷几次,代码借鉴本题官方解答。 思考: 代码: class Solution: def levelOrder(self, root: TreeNode) -> List[List[i 阅读全文
posted @ 2020-03-10 16:42 ChevisZhang 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,返回它的中序 遍历。 这是9024最后期末复习的时候,经常写的东西,树结构的接口,今天竟然忘记了。 难点: 1. 主要不知道输入里面的Null要怎么处理,后来看答案才知道,根本不需要处理,就直接递归 TreeNode结构就可以了 2. 三种遍历,就是 helper(node.left 阅读全文
posted @ 2020-03-10 10:40 ChevisZhang 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 想法: 1.T98 验证二叉搜索树拥有最优子结构,从而可以从底向上递归 2.本题的对称是根据根节点来的,所以要从顶往下递归。 阅读全文
posted @ 2020-03-09 14:44 ChevisZhang 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 本题具有最优子结构,想要整棵树都是二叉搜索树,那左子树,右子树都要是二叉搜索树。 直接递归 注意: 阅读全文
posted @ 2020-03-09 09:31 ChevisZhang 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 代码: class Solution: def __init__(self): self.res = [] def partition(self, s: str) -> List[List[str]] 阅读全文
posted @ 2020-03-08 19:07 ChevisZhang 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 想法:本题跟我们9021 quiz7-8的类型是一样的,9024也用C写过一次,都是在二维数组里搜 阅读全文
posted @ 2020-03-08 12:44 ChevisZhang 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 1. cur 遍历到0时,与left指针交换值,cur+=1, left+=1 2. cur 阅读全文
posted @ 2020-03-07 19:41 ChevisZhang 阅读(113) 评论(0) 推荐(0) 编辑