03 2020 档案

摘要:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示: val:一个表示 Node.val 的整数。rando 阅读全文
posted @ 2020-03-28 13:09 ChevisZhang 阅读(116) 评论(0) 推荐(0)
摘要:收获: 1.在python中对链表中节点进行操作时: a) 从前 我直接 return head (错误) b)现在由于怕 head 会被修改,所以要设 point = Listnode(-1) return point 2. 我自己只想出了两遍遍历,收获了一遍遍历的思路: 双指针 a) 使 fas 阅读全文
posted @ 2020-03-27 23:26 ChevisZhang 阅读(148) 评论(0) 推荐(0)
摘要:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 法1) 使用 Counter 的most_common(k) 方法 from collections import Counter class Solution: def topKFrequent(self, nums: List[int] 阅读全文
posted @ 2020-03-21 18:03 ChevisZhang 阅读(157) 评论(0) 推荐(0)
摘要:转自https://blog.csdn.net/hypon2016/article/details/80443649 阅读全文
posted @ 2020-03-17 19:39 ChevisZhang 阅读(186) 评论(0) 推荐(0)
摘要:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 本题依然是排序算法,怎么排序示例二: str( x ) + str( y ) > str( y ) + str( x ) 则让 x 排列在 y 的前面,但是需要借助cmp_to_key: https://zhuanlan.zhihu.co 阅读全文
posted @ 2020-03-15 17:32 ChevisZhang 阅读(251) 评论(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 阅读(142) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 原思路(错误的): *)忽略了DFS只能决定 当前节点下一层的遍历顺序, 不能决定本层的所有节点遍历顺序,所以需要用到双向列表的数据结构。 from collections im 阅读全文
posted @ 2020-03-10 17:11 ChevisZhang 阅读(188) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 本题像抄了个作业,索然无味,改天再多刷几次,代码借鉴本题官方解答。 思考: 代码: class Solution: def levelOrder(self, root: TreeNode) -> List[List[i 阅读全文
posted @ 2020-03-10 16:42 ChevisZhang 阅读(152) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回它的中序 遍历。 这是9024最后期末复习的时候,经常写的东西,树结构的接口,今天竟然忘记了。 难点: 1. 主要不知道输入里面的Null要怎么处理,后来看答案才知道,根本不需要处理,就直接递归 TreeNode结构就可以了 2. 三种遍历,就是 helper(node.left 阅读全文
posted @ 2020-03-10 10:40 ChevisZhang 阅读(113) 评论(0) 推荐(0)
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 想法: 1.T98 验证二叉搜索树拥有最优子结构,从而可以从底向上递归 2.本题的对称是根据根节点来的,所以要从顶往下递归。 阅读全文
posted @ 2020-03-09 14:44 ChevisZhang 阅读(111) 评论(0) 推荐(0)
摘要:给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 本题具有最优子结构,想要整棵树都是二叉搜索树,那左子树,右子树都要是二叉搜索树。 直接递归 注意: 阅读全文
posted @ 2020-03-09 09:31 ChevisZhang 阅读(302) 评论(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 阅读(191) 评论(0) 推荐(0)
摘要:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 想法:本题跟我们9021 quiz7-8的类型是一样的,9024也用C写过一次,都是在二维数组里搜 阅读全文
posted @ 2020-03-08 12:44 ChevisZhang 阅读(311) 评论(0) 推荐(0)
摘要:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 1. cur 遍历到0时,与left指针交换值,cur+=1, left+=1 2. cur 阅读全文
posted @ 2020-03-07 19:41 ChevisZhang 阅读(125) 评论(0) 推荐(0)
摘要:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 本题我可以想到 空间O(m+n)的算法,但是O(1)是参考题解区大神的思路。 收获: 1. 可以通过连等于来给两个变量赋相同的值: a = b = 1 2. 思路上: a) 可以用虚拟值代替0来 阅读全文
posted @ 2020-03-07 17:15 ChevisZhang 阅读(202) 评论(0) 推荐(0)
摘要:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/coin-change著作权归领 阅读全文
posted @ 2020-03-06 11:43 ChevisZhang 阅读(296) 评论(0) 推荐(0)