随笔分类 -  LeetCode

上一页 1 ··· 4 5 6 7 8 9 下一页
LeetCode题解
摘要:题目 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 说明 : 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 本题同 "【剑指Offer】面试题28. 对称的 阅读全文
posted @ 2020-02-24 22:47 Galaxy_hao 阅读(185) 评论(0) 推荐(0)
摘要:题目 翻转一棵二叉树。 示例: 输入: 输出: 本题同 "【剑指Offer】面试题27. 二叉树的镜像" 思路一:递归 代码 时间复杂度:O(n) 空间复杂度:O(n) 思路二:迭代 类似深度优先。 代码 时间复杂度:O(n) 空间复杂度:O(n) 阅读全文
posted @ 2020-02-23 22:56 Galaxy_hao 阅读(175) 评论(0) 推荐(0)
摘要:题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 镜像输出: 示例 1: 限制: `0 left && !root right)) return root; root left = mirrorTree(root left); root right = mirrorTree(r 阅读全文
posted @ 2020-02-23 22:53 Galaxy_hao 阅读(160) 评论(0) 推荐(0)
摘要:题目 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 示例 2: 示例 3: 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O 阅读全文
posted @ 2020-02-22 23:32 Galaxy_hao 阅读(171) 评论(0) 推荐(0)
摘要:题目 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 示例 2: 示例 3: 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O 阅读全文
posted @ 2020-02-22 23:29 Galaxy_hao 阅读(204) 评论(0) 推荐(0)
摘要:题目 反转一个单链表。 示例: 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 注意 :本题同 "【剑指Offer】面试题24. 反转链表" 思路一:反转链表元素 取出链表中元素放入vector中,然后将vector中元素逆向存入链表中。 1. 遍历链表,用vector存放数组元素 阅读全文
posted @ 2020-02-21 23:04 Galaxy_hao 阅读(258) 评论(0) 推荐(0)
摘要:题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 限制: `0 res; ListNode pNode = head; while (pNode != nullptr) { res.push_back(pNode val); pNode = pNode next 阅读全文
posted @ 2020-02-21 23:00 Galaxy_hao 阅读(280) 评论(0) 推荐(0)
摘要:LeetCode题解汇总(包括剑指Offer和程序员面试金典,持续更新)) 剑指Offer 数据结构 链表 序号 题目 难度 06 从尾到头打印链表 简单 18 删除链表的节点 简单 22 链表中倒数第k个节点 简单 24 反转链表 简单 25 合并两个排序的链表 简单 35 复杂链表的复制 中等 阅读全文
posted @ 2020-02-20 21:34 Galaxy_hao 阅读(1107) 评论(0) 推荐(0)
摘要:题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 思路 1. 先统计链表节点个数 2. 计算从前向后 阅读全文
posted @ 2020-02-20 20:04 Galaxy_hao 阅读(210) 评论(0) 推荐(0)
摘要:题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意 :此题对比原题有改动 示例 1: 示例 2: 说明: 题目保证链表中节点的值互不相同 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 思路 为了简化删除头节 阅读全文
posted @ 2020-02-20 19:41 Galaxy_hao 阅读(367) 评论(0) 推荐(0)
摘要:题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m 1,n 1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3 阅读全文
posted @ 2020-02-19 22:28 Galaxy_hao 阅读(194) 评论(0) 推荐(0)
摘要:题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: 思路 同 "【剑指Offer】面试题12. 矩阵中的路径" 以每个位置开头检查是否存 阅读全文
posted @ 2020-02-18 22:28 Galaxy_hao 阅读(287) 评论(0) 推荐(0)
摘要:题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗 阅读全文
posted @ 2020-02-18 22:24 Galaxy_hao 阅读(315) 评论(0) 推荐(0)
摘要:题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 示例 2: 思路一:暴力 代码 时间复杂度:O(n) 空间复 阅读全文
posted @ 2020-02-17 22:07 Galaxy_hao 阅读(244) 评论(0) 推荐(0)
摘要:题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 示例 2: 提示: 思路 同 "【剑指Offer】面试题10 I. 斐波那契数 阅读全文
posted @ 2020-02-17 19:12 Galaxy_hao 阅读(374) 评论(0) 推荐(0)
摘要:题目 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: 给定 N,计算 F(N)。 示例 1: 示例 2: 示例 3: 提示: 思路:动态规划 同 "【剑指Offer】面试题10 I. 斐波那契数列" 如果使用 阅读全文
posted @ 2020-02-16 21:55 Galaxy_hao 阅读(278) 评论(0) 推荐(0)
摘要:题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 阅读全文
posted @ 2020-02-16 21:48 Galaxy_hao 阅读(303) 评论(0) 推荐(0)
摘要:题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 1 ) 示例 1: 示例 2: 提示: 1 st1; stack st2; pu 阅读全文
posted @ 2020-02-16 21:30 Galaxy_hao 阅读(385) 评论(0) 推荐(0)
摘要:题目 URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 示例1: 示例2: 提示: 思路:双指针 同 "【剑指Offer】面试题05.替换空格" 代 阅读全文
posted @ 2020-02-15 23:00 Galaxy_hao 阅读(237) 评论(0) 推荐(0)
摘要:题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1: 示例 2: 说明: 0 hash(256, 0); for (int i = 0; i < s1.size(); ++i) { ++hash[s1[i]]; hash[s2[ 阅读全文
posted @ 2020-02-14 23:26 Galaxy_hao 阅读(212) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 下一页