随笔分类 -  LeetCode

上一页 1 2 3 4 5 6 ··· 8 下一页
LeetCode笔记
摘要:LeetCode Notes_面试题 01.07. 旋转矩阵LeetCodeContents题目解答方法1:使用额外空间复杂度分析方法2:先转置,再对每行中点翻转复杂度分析方法3: 矩阵分为四块并进行顺时针旋转复杂度分析 题目给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix ... 阅读全文
posted @ 2020-10-01 15:56 Howfar's 阅读(209) 评论(0) 推荐(0)
摘要:LeetCode Notes_#652_寻找重复的子树LeetCodeContents题目思路分析解答复杂度分析 题目给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。示例 1: 1 / \ 2 3 / / \ 4 2 4 ... 阅读全文
posted @ 2020-09-25 22:10 Howfar's 阅读(144) 评论(0) 推荐(0)
摘要:LeetCode Notes_#46_全排列LeetCodeContents题目思路分析解答复杂度分析参考 题目给定一个 没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 思路分析这题的思路是回溯法,或者说DFS深度优先遍历。因为全排列本身就... 阅读全文
posted @ 2020-09-05 13:35 Howfar's 阅读(134) 评论(0) 推荐(0)
摘要:LeetCode Notes_#279 完全平方数LeetCodeContents题目思路分析解答方法1:动态规划复杂度分析方法2:BFS复杂度分析 题目给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13... 阅读全文
posted @ 2020-09-04 21:47 Howfar's 阅读(235) 评论(0) 推荐(0)
摘要:LeetCode Notes_#752 打开转盘锁LeetCodeContents题目思路分析解答复杂度分析 题目你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮 阅读全文
posted @ 2020-09-03 20:29 Howfar's 阅读(187) 评论(0) 推荐(0)
摘要:LeetCode Notes_#200 岛屿数量LeetCodeContents题目思路分析解答方法1:DFS复杂度分析方法2:BFS复杂度分析 题目给你一个由'0'(水)和'1'(陆地)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:[['1','1','1','1... 阅读全文
posted @ 2020-09-03 20:07 Howfar's 阅读(157) 评论(0) 推荐(0)
摘要:LeetCode Notes_#622_设计循环队列Contents题目思路分析解答复杂度分析 题目设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空... 阅读全文
posted @ 2020-09-02 09:14 Howfar's 阅读(221) 评论(0) 推荐(0)
摘要:LeetCode Notes_#430_扁平化多级双向链表LeetCodeContents题目思路递归函数Node flattenDFS(Node prev, Node cur)终止条件递推过程解答复杂度分析 题目多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示... 阅读全文
posted @ 2020-08-28 19:03 Howfar's 阅读(159) 评论(0) 推荐(0)
摘要:LeetCode Notes_#707_设计链表LeetCodeContents题目解答方法1:单链表复杂度分析方法2:双链表复杂度分析 题目设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有... 阅读全文
posted @ 2020-08-21 17:17 Howfar's 阅读(165) 评论(0) 推荐(0)
摘要:LeetCode Notes_#234_回文链表LeetCodeContents题目解答方法1:用ArrayList保存数据并判断复杂度分析方法2:双指针+反转链表复杂度分析 题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解答 方法1... 阅读全文
posted @ 2020-08-20 18:37 Howfar's 阅读(133) 评论(0) 推荐(0)
摘要:LeetCode Notes_#328_奇偶链表LeetCodeContents题目解答方法1:计数器+借用额外空间复杂度分析方法2:原地修改链表复杂度分析 题目给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),no... 阅读全文
posted @ 2020-08-20 17:39 Howfar's 阅读(116) 评论(0) 推荐(0)
摘要:LeetCode Notes_#203_移除链表元素LeetCodeContents题目思路分析解答复杂度分析 题目删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5 思路分析循环遍历链表,遇到val就删除。注意两点:第一个节点需要被删除的情况。引入哑节点。删除操作需要有删除节点的前一个节点的指针... 阅读全文
posted @ 2020-08-20 17:01 Howfar's 阅读(96) 评论(0) 推荐(0)
摘要:LeetCode Notes_#19_删除链表的倒数第N个节点LeetCodeContents题目思路分析算法流程解答1:不使用哑节点解答2:使用哑节点复杂度分析 题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶... 阅读全文
posted @ 2020-08-19 17:37 Howfar's 阅读(153) 评论(0) 推荐(0)
摘要:LeetCode Notes_#173_二叉搜索树迭代器LeetCodeContents题目思路分析方法1:在构造器中得到中序遍历序列方法2:拆分非递归中序遍历模板解答解答1:在构造器中得到中序遍历序列复杂度分析解答2:拆分非递归中序遍历模板复杂度分析 题目实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIt... 阅读全文
posted @ 2020-08-09 18:51 Howfar's 阅读(135) 评论(0) 推荐(0)
摘要:LeetCode Notes_#98_验证二叉搜索树LeetCodeContents题目思路分析递归终止条件递推过程回溯返回值非递归解答解答1:前序遍历+上下界+递归解答2:前序遍历+上下界+非递归解答3:中序遍历+递归解答4:中序遍历+非递归复杂度分析总结 题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只... 阅读全文
posted @ 2020-08-08 17:52 Howfar's 阅读(178) 评论(0) 推荐(0)
摘要:LeetCode Notes_#117_填充每个节点的下一个右侧节点指针 IILeetCodeContents题目思路分析方法1:层序遍历方法2:利用已有的next指针解答解答1:层序遍历解答2:利用已有的next指针复杂度分析 题目给定一个二叉树struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 nex... 阅读全文
posted @ 2020-08-06 17:54 Howfar's 阅读(154) 评论(0) 推荐(0)
摘要:LeetCode Notes_#116_填充每个节点的下一个右侧节点指针Contents题目思路分析方法1:层序遍历方法2:借助已有的next指针方法3:递归解答解答1:层序遍历复杂度分析解答2:利用已有的next指针复杂度分析解答3:递归复杂度分析 题目给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; N... 阅读全文
posted @ 2020-08-06 17:00 Howfar's 阅读(166) 评论(0) 推荐(0)
摘要:LeetCode Notes_#104_从中序与后序遍历序列构造二叉树LeetCodeContents题目思路分析解答复杂度分析 题目根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 ... 阅读全文
posted @ 2020-08-05 18:51 Howfar's 阅读(129) 评论(0) 推荐(0)
摘要:剑指Offer_#9_用两个栈实现队列剑指offerContents题目思路分析算法流程入队列appendTail()出队列deleteHead()解答复杂度分析 题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 ... 阅读全文
posted @ 2020-08-02 20:40 Howfar's 阅读(148) 评论(0) 推荐(0)
摘要:剑指Offer_#7_重建二叉树 Contents 题目思路分析整体思路递归函数其他细节解答代码1代码2:进一步优化代码复杂度分析 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3, 阅读全文
posted @ 2020-07-31 19:48 Howfar's 阅读(219) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 8 下一页