上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 4. 寻找两个正序数组的中位数 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。 1.解题思路 题目要求时间复杂度为 O(lo 阅读全文
posted @ 2020-05-24 19:19 xiaoqichaoren 阅读(151) 评论(0) 推荐(0)
摘要: 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / 阅读全文
posted @ 2020-05-24 19:16 xiaoqichaoren 阅读(159) 评论(0) 推荐(0)
摘要: 210. 课程表 II 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺 阅读全文
posted @ 2020-05-24 19:14 xiaoqichaoren 阅读(135) 评论(0) 推荐(0)
摘要: 680. 验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 2: 输入: "abca" 输出: True 解释: 你可以删除c字符。 1.解题思路 这道题用双指针,从两头往中间遍历。 步骤: (1)如果找不到两个对称位置不同的元素的下标,直接返回 Tru 阅读全文
posted @ 2020-05-24 19:12 xiaoqichaoren 阅读(185) 评论(0) 推荐(0)
摘要: 5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 1.解题思路 根据回文串的特征,我们知道回文串除去两端的子串仍然是回文串,递归地拆除两端我们可以得到两种情况:长度为1的子串或长度为2的子串。 那么,反过来我们可以遍历字符串s,并对每个字符 阅读全文
posted @ 2020-05-24 19:09 xiaoqichaoren 阅读(127) 评论(0) 推荐(0)
摘要: 152. 乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 1.解题思路 与(53. 最大子序和)解法一致,不同的是“负负得正”。当遍历到数组中的负数时,我们希望以它前一个位置结尾的某个段的积也是个负数,这样 阅读全文
posted @ 2020-05-24 19:08 xiaoqichaoren 阅读(127) 评论(0) 推荐(0)
摘要: 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 1.解题思路 解法一:使用哈希表存储每个数字。遍历数组即可知道当前数字是否出现过。如果出现过, 阅读全文
posted @ 2020-05-24 19:06 xiaoqichaoren 阅读(163) 评论(0) 推荐(0)
摘要: 206. 反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 1.解题思路 我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。 第二个指针 cur 指向 head,然后不断遍历 cur。 每次迭代到 阅读全文
posted @ 2020-05-24 19:04 xiaoqichaoren 阅读(129) 评论(0) 推荐(0)
摘要: 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2-> 阅读全文
posted @ 2020-05-24 19:02 xiaoqichaoren 阅读(167) 评论(0) 推荐(0)
摘要: 155. 最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 1.解题思路 在普通的栈设计(见 阅读全文
posted @ 2020-05-24 19:00 xiaoqichaoren 阅读(148) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 9 下一页