随笔分类 -  LeetCode

摘要:从前序与中序遍历序列构造二叉树 LeetCode入口👉👉👉 "No.105" 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 思路 根据前序和中序遍历的特点 前序遍历 第一个元素 一定是 根节点 中序遍历根节点左侧元素属于左子 阅读全文
posted @ 2020-05-12 16:58 鱼与鱼 阅读(672) 评论(0) 推荐(0) 编辑
摘要:模板 result = [] def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择 排列问题,讲究顺序(即 [2, 2, 3] 与 [2, 3, 2 阅读全文
posted @ 2020-05-12 15:56 鱼与鱼 阅读(186) 评论(0) 推荐(0) 编辑
摘要:数组分段和最大值最小问题(最小m段和问题) 问题描述 给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小? 清洁工:假设有n个房间,清洁每个房间耗时用一个数组表示,10、20、30、40、50、60、70、80、90, 阅读全文
posted @ 2020-04-29 17:43 鱼与鱼 阅读(4425) 评论(0) 推荐(0) 编辑
摘要:"198. 打家劫舍" 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统, 如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下, 能够偷 阅读全文
posted @ 2020-04-29 08:29 鱼与鱼 阅读(265) 评论(0) 推荐(0) 编辑
摘要:"面试题56 I. 数组中数字出现的次数" 一个整型数组 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 思路 相同数的异或结果为0。题目中有两个数(a,b)只出现一次,其余的数出现了两次,如果将数 阅读全文
posted @ 2020-04-28 20:38 鱼与鱼 阅读(375) 评论(2) 推荐(0) 编辑
摘要:"48. 旋转图像" 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在 "原地" 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。 示例 1: 示例 2: 思路 元素 对应的四个位置分别是: 如果 n 是偶数的话,这相 阅读全文
posted @ 2020-04-20 13:57 鱼与鱼 阅读(219) 评论(0) 推荐(0) 编辑
摘要:"104. 二叉树的最大深度" 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 , 返回它的最大深度 3 。 "111. 二叉树的最小深度" 给定一个二叉树,找出其最小深度。 最小深度是从根节点到 阅读全文
posted @ 2020-04-18 14:34 鱼与鱼 阅读(273) 评论(0) 推荐(1) 编辑
摘要:每个节点比它左子树的任意节点大,而且比它右子树的任意节点小 "98. 验证二叉搜索树" 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 阅读全文
posted @ 2020-04-18 14:31 鱼与鱼 阅读(131) 评论(0) 推荐(0) 编辑
摘要:"55. 跳跃游戏" 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 示例 2: 思路 在每个能跳到的位置起跳,更新能跳的最远距离 另一种实现: 在每个能跳到的位置依次跳,更新能跳的最远距离,如果最 阅读全文
posted @ 2020-04-17 15:28 鱼与鱼 阅读(129) 评论(0) 推荐(0) 编辑
摘要:按照时间复杂度、稳定性、排序方式分为三个梯队 第三梯队选手:冒泡、选择、插入 平均时间复杂度都是$O(n^2)$ 冒泡排序 思想 每次遍历交换相邻位置元素,遍历数组长度次 def bubblesort(nums): for i in range(len(nums)): for j in range( 阅读全文
posted @ 2020-04-15 15:14 鱼与鱼 阅读(363) 评论(2) 推荐(0) 编辑
摘要:创建最大(小)堆 二叉堆本质上是一种完全二叉树,存储方式并不是链式存储,而是顺序存储 堆操作:插入(叶子节点上调),删除(堆顶元素下沉) 堆创建:非叶子节点下沉(从最后一个非叶子节点开始) 最小堆: 最小堆任何一个父节点的值,都小于等于它左右孩子节点的值 创建过程:如果非叶子节点值大于其子节点,将其 阅读全文
posted @ 2020-04-15 11:10 鱼与鱼 阅读(1043) 评论(0) 推荐(0) 编辑
摘要:"151. 翻转字符串里的单词" 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 示例 2: 示例 3: 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 阅读全文
posted @ 2020-04-10 21:25 鱼与鱼 阅读(314) 评论(0) 推荐(0) 编辑
摘要:"62. 不同路径" 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 示例 阅读全文
posted @ 2020-04-09 21:43 鱼与鱼 阅读(189) 评论(0) 推荐(0) 编辑
摘要:"56. 合并区间" 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: 阅读全文
posted @ 2020-04-09 20:47 鱼与鱼 阅读(180) 评论(0) 推荐(0) 编辑
摘要:"42. 接雨水" 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 阅读全文
posted @ 2020-04-02 09:32 鱼与鱼 阅读(137) 评论(0) 推荐(0) 编辑
摘要:"21. 合并两个有序链表" 难度简单912收藏分享切换为英文关注反馈 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 阅读全文
posted @ 2020-03-28 19:36 鱼与鱼 阅读(162) 评论(0) 推荐(0) 编辑
摘要:"820. 单词的压缩编码" 给定一个单词列表,我们将这个列表编码成一个索引字符串 与一个索引列表 。 例如,如果这个列表是 ,我们就可以将其表示为 和 。 对于每一个索引,我们可以通过从字符串 中索引的位置开始读取字符串,直到 " " 结束,来恢复我们之前的单词列表。 那么成功对给定单词列表进行编 阅读全文
posted @ 2020-03-28 16:29 鱼与鱼 阅读(433) 评论(0) 推荐(0) 编辑
摘要:"22. 括号生成" 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且 有效的 括号组合。 例如,给出 n = 3,生成结果为: 阅读全文
posted @ 2020-03-27 15:43 鱼与鱼 阅读(209) 评论(0) 推荐(0) 编辑
摘要:"914. 卡牌分组" 给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 ,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 张牌。 组内所有的牌上都写着相同的整数。 仅当你可选的 时返回 。 示例 1: 示例 5: 阅读全文
posted @ 2020-03-27 15:39 鱼与鱼 阅读(161) 评论(0) 推荐(0) 编辑
摘要:"999. 车的可用捕获量" 在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。 车按国际象棋中的规则移动:它选择四个基本方向中的一个( 阅读全文
posted @ 2020-03-26 14:52 鱼与鱼 阅读(167) 评论(0) 推荐(0) 编辑