09 2018 档案

摘要:题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。 示例 1: 示例 2: 分析 现在的问题是我们需要对哪些元素进行操作。因为题目要求使用 原地 算法,这 阅读全文
posted @ 2018-09-20 11:14 yuzhenzero 阅读(127) 评论(0) 推荐(0)
摘要:题目描述 判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 1. 数字 在每一行只能出现一次。 2. 数字 在每一列只能出现一次。 3. 数字 在每一个以粗实线分隔的 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 阅读全文
posted @ 2018-09-20 10:08 yuzhenzero 阅读(261) 评论(0) 推荐(0)
摘要:题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 分析 之前做过一个题,是旋转数组,把数组按要求向右循环移位。在旋转数组中,用到了按索引反转数组的一个辅助方法,先把数组整体反转,再分为两部分分别反转,就可以得到结果了。这个方法在链表中 阅读全文
posted @ 2018-09-12 10:54 yuzhenzero 阅读(153) 评论(0) 推荐(0)
摘要:题目描述 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。 示例: 以上示例的说明: 给出以下多级双向 阅读全文
posted @ 2018-09-11 21:54 yuzhenzero 阅读(199) 评论(0) 推荐(0)
摘要:题目描述 2 两数相加 给定两个 非空 链表来表示两个非负整数。位数按照 逆序 方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 分析 由于是两个链表的元素对应相加,很自然地就想到用双指针,然后在双指针的基础上加一 阅读全文
posted @ 2018-09-11 11:12 yuzhenzero 阅读(293) 评论(0) 推荐(0)
摘要:题目描述 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 示例 2: 说明: 阅读全文
posted @ 2018-09-07 20:05 yuzhenzero 阅读(509) 评论(0) 推荐(0)
摘要:题目描述 206 反转链表 反转一个单链表。 示例: 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 这是一个经典题目,《算法》第四版有它的原题,在中文版第103页1.3.30。 分析 这一题有两种方法来做:递归法和迭代法。 递归法 思路 假设整个链表有N个节点,要将整个链表反转, 阅读全文
posted @ 2018-09-07 15:51 yuzhenzero 阅读(205) 评论(0) 推荐(0)
摘要:题目描述 19 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 分析 这一题可以用两种方法来做 两次遍历算法 一次遍历算法(待补充) 两次遍历算法 思路 我们首先需要知道链 阅读全文
posted @ 2018-09-06 21:56 yuzhenzero 阅读(136) 评论(0) 推荐(0)
摘要:题目描述 142 环形链表 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 说明: 不允许修改给定的链表。 进阶: 你是否可以不用额外空间解决此题? 分析 使用双指针可以解决该问题。 链表没有环的判定可以参考第141题, "环形链表" 。 现在在链表有环的情况下分析。设一个快 阅读全文
posted @ 2018-09-06 11:01 yuzhenzero 阅读(417) 评论(0) 推荐(0)