随笔分类 -  LeetCode

上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要:问题 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一 阅读全文
posted @ 2021-03-04 19:21 tmpUser 阅读(53) 评论(0) 推荐(0)
摘要:问题 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 输入: arr = [3,2,1], k = 2 输出: [1,2] 或者 [2,1] 输入: arr = [0,1,2,1], k = 1 输出: 阅读全文
posted @ 2021-03-04 18:48 tmpUser 阅读(58) 评论(0) 推荐(0)
摘要:问题 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 说明: 不允许旋转信封。 阅读全文
posted @ 2021-03-04 10:50 tmpUser 阅读(52) 评论(0) 推荐(0)
摘要:问题 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 解答1:排序 class Solution { public: int majorityE 阅读全文
posted @ 2021-03-03 20:04 tmpUser 阅读(40) 评论(0) 推荐(0)
摘要:问题 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例 输入: s = "aab" 输出: ["aab","aba","baa"]] 解答1:swap解决全排列 class Solution { public: vector<stri 阅读全文
posted @ 2021-03-03 18:05 tmpUser 阅读(43) 评论(0) 推荐(0)
摘要:问题 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 输入: 5 输出: [0,1,1,2,1,2] 解答1:暴力方法 class Solution { public: vector<int> countBi 阅读全文
posted @ 2021-03-03 15:30 tmpUser 阅读(57) 评论(0) 推荐(0)
摘要:问题 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。 你可以假设矩阵不可变。 会多次调用 sumRegion 方法。 你可以假设 row1 ≤ row2 且 col1 ≤ col2 。 示例 给定 matrix 阅读全文
posted @ 2021-03-02 10:32 tmpUser 阅读(57) 评论(0) 推荐(0)
摘要:问题 请实现两个函数,分别用来序列化和反序列化二叉树。 示例 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]" 解答1:迭代(层序遍历) class Codec { public: // Encodes a tree to a sin 阅读全文
posted @ 2021-02-28 22:05 tmpUser 阅读(50) 评论(0) 推荐(0)
摘要:问题 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 示例 解答1:递归 class Solution { public: Node* treeToDoublyList(Node* root) { if (!root) retu 阅读全文
posted @ 2021-02-28 17:17 tmpUser 阅读(55) 评论(0) 推荐(0)
摘要:问题 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 // Definition for a Node. class Node { public: int 阅读全文
posted @ 2021-02-28 15:01 tmpUser 阅读(54) 评论(0) 推荐(0)
摘要:问题 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例 解答 class Solution { public: vector<vector<int>> pathSum(TreeNode* root, int su 阅读全文
posted @ 2021-02-28 13:44 tmpUser 阅读(43) 评论(0) 推荐(0)
摘要:问题 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 示例 输入: [1,6,3,2,5] 输出: false 输入: [1,3,2,6,5] 输出: true 解答1:递归 class Solut 阅读全文
posted @ 2021-02-28 12:03 tmpUser 阅读(67) 评论(0) 推荐(0)
摘要:问题 给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。 示例 输入: s = "ababbc", k = 2 输出: 5 解释: 最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次 阅读全文
posted @ 2021-02-27 15:27 tmpUser 阅读(204) 评论(0) 推荐(0)
摘要:问题 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底: 单词 word 中包含谜面 puzzle 的第一个字母。 单词 word 中的每一个字母都可以在谜面 puzzle 中找到。 例如,如果字谜的谜面是 "abcdefg",那么可以作为谜 阅读全文
posted @ 2021-02-26 21:43 tmpUser 阅读(102) 评论(0) 推荐(0)
摘要:问题 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 示例 字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值, 但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 解答1:确定有限状态自动机(D 阅读全文
posted @ 2021-02-25 21:53 tmpUser 阅读(59) 评论(0) 推荐(0)
摘要:问题 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 // Definition for a binary tree node. struct TreeNode { int val; TreeNo 阅读全文
posted @ 2021-02-24 21:00 tmpUser 阅读(58) 评论(0) 推荐(0)
摘要:问题 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 // Definition for a binary tree node. struct TreeNode { int val; TreeNo 阅读全文
posted @ 2021-02-24 20:48 tmpUser 阅读(53) 评论(0) 推荐(0)
摘要:问题 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 示例 输入: pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出: true 解释: 我们可以按以下顺序执行: push(1), push 阅读全文
posted @ 2021-02-24 17:52 tmpUser 阅读(50) 评论(0) 推荐(0)
摘要:问题 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 解答 class MinStack { public: void push(int x) { s.push(x); if (s_min.empty( 阅读全文
posted @ 2021-02-24 17:08 tmpUser 阅读(55) 评论(0) 推荐(0)
摘要:问题 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 输入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,3,6,9,8,7,4,5] 解答 class Solution { public: vector<int> spiralOrd 阅读全文
posted @ 2021-02-24 15:13 tmpUser 阅读(45) 评论(0) 推荐(0)

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