2019年1月7日

摘要: 整数替换 给定一个正整数 n,你可以做如下操作: 1. 如果 n 是偶数,则用 n / 2替换 n。2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。n 变为 1 所需的最小替换次数是多少? 示例 1: 输入: 8 输出: 3 解释: 8 -> 4 -> 2 -> 1 示例 2: 输 阅读全文
posted @ 2019-01-07 20:10 kexinxin 阅读(113) 评论(0) 推荐(0)
摘要: 第n个数 在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。 注意:n 是正数且在32为整形范围内 ( n < 231)。 示例 1: 输入: 3 输出: 3 示例 2: 输入: 11 输出: 0 说明: 第11个数字在序列 1, 2 阅读全文
posted @ 2019-01-07 20:10 kexinxin 阅读(133) 评论(0) 推荐(0)
摘要: 旋转函数 给定一个长度为 n 的整数数组 A 。 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的"旋转函数" F 为: F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]。 计算F(0), F(1), ..., F(n- 阅读全文
posted @ 2019-01-07 20:09 kexinxin 阅读(154) 评论(0) 推荐(0)
摘要: 至少有k个重复字符的最长子串 找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 示例 1: 输入: s = "aaabb", k = 3 输出: 3 最长子串为 "aaa" ,其中 'a' 重复了 3 次。 示例 2: 输入: s 阅读全文
posted @ 2019-01-07 20:08 kexinxin 阅读(881) 评论(0) 推荐(0)
摘要: 字符串编码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的 阅读全文
posted @ 2019-01-07 20:07 kexinxin 阅读(169) 评论(0) 推荐(0)
摘要: 判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形 阅读全文
posted @ 2019-01-07 20:06 kexinxin 阅读(84) 评论(0) 推荐(0)
摘要: 完美矩形 我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域。 每个矩形用左下角的点和右上角的点的坐标来表示。例如, 一个单位正方形可以表示为 [1,1,2,2]。 ( 左下角的点的坐标为 (1, 1) 以及右上角的点的坐标为 (2, 2) )。 示例 1: 阅读全文
posted @ 2019-01-07 20:05 kexinxin 阅读(267) 评论(0) 推荐(0)
摘要: 文件的最长绝对路径 假设我们以下述方式将我们的文件系统抽象成一个字符串: 字符串 "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" 表示: dir subdir1 subdir2 file.ext 目录 dir 包含一个空的子目录 subdir1 和一个包含一个文件 阅读全文
posted @ 2019-01-07 20:04 kexinxin 阅读(591) 评论(0) 推荐(0)
摘要: 字典序排序 给定一个整数 n, 返回从 1 到 n 的字典顺序。 例如, 给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。 请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。 解题思路 用函数栈(递归)用来去完成字 阅读全文
posted @ 2019-01-07 20:03 kexinxin 阅读(232) 评论(0) 推荐(0)
摘要: 有序矩阵中第k小的元素 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 阅读全文
posted @ 2019-01-07 20:02 kexinxin 阅读(170) 评论(0) 推荐(0)
摘要: 摆动序列 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 阅读全文
posted @ 2019-01-07 20:01 kexinxin 阅读(164) 评论(0) 推荐(0)
摘要: 组合总和IV 给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。 示例: nums = [1, 2, 3] target = 4 所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 阅读全文
posted @ 2019-01-07 20:01 kexinxin 阅读(153) 评论(0) 推荐(0)
摘要: 猜数字大小II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。 然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。 示例: 阅读全文
posted @ 2019-01-07 20:00 kexinxin 阅读(144) 评论(0) 推荐(0)
摘要: 查找和最小的k对数字 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) ... (uk,vk)。 示例 1: 输入: num 阅读全文
posted @ 2019-01-07 19:59 kexinxin 阅读(386) 评论(0) 推荐(0)
摘要: 两整数之和 不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = 3 输出: 1 阅读全文
posted @ 2019-01-07 19:57 kexinxin 阅读(85) 评论(0) 推荐(0)
摘要: 超级次方 你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。 示例 1: 输入: a = 2, b = [3] 输出: 8 示例 2: 输入: a = 2, b = [1,0] 输出: 1024 解题思想 这道题需要计算 a^b % c 的值,其 阅读全文
posted @ 2019-01-07 19:57 kexinxin 阅读(268) 评论(0) 推荐(0)
摘要: 最大整除子集 给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。 如果有多个目标子集,返回其中任何一个均可。 示例 1: 输入: [1,2,3] 输出: [1,2] (当然, [1,3] 也正确) 阅读全文
posted @ 2019-01-07 19:56 kexinxin 阅读(261) 评论(0) 推荐(0)
摘要: 矩形区域不超过k的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和。 示例: 输入: matrix = [[1,0,1],[0,-2,3]], k = 2 输出: 2 解释: 矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 阅读全文
posted @ 2019-01-07 19:54 kexinxin 阅读(655) 评论(0) 推荐(0)
摘要: 水壶问题 有两个容量分别为 x升和 y升的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或者倒空 示例 1: (Fro 阅读全文
posted @ 2019-01-07 19:54 kexinxin 阅读(160) 评论(0) 推荐(0)
摘要: 计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。 解题分析: 题目要就就是 阅读全文
posted @ 2019-01-07 19:53 kexinxin 阅读(332) 评论(0) 推荐(0)
摘要: 俄罗斯套娃信封问题 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组"俄罗斯套娃"信封(即可以把一个信封放到另一个信封里面)。 说明:不允 阅读全文
posted @ 2019-01-07 19:50 kexinxin 阅读(362) 评论(0) 推荐(0)
摘要: 345. 反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明:元音字母不包含字母"y"。 阅读全文
posted @ 2019-01-07 19:49 kexinxin 阅读(90) 评论(0) 推荐(0)
摘要: 打家劫舍III 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为"根"。除了"根"之外,每栋房子有且只有一个"父"房子与之相连。一番侦察之后,聪明的小偷意识到"这个地方的所有房屋的排列类似于一棵二叉树"。如果两个直接相连的房子在同一天晚上被打劫 阅读全文
posted @ 2019-01-07 19:48 kexinxin 阅读(100) 评论(0) 推荐(0)
摘要: 回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。 示例 1: 输入: ["abcd","dcba","lls","s","sssll"] 输出: [[0,1],[1,0],[3,2],[2,4]] 解 阅读全文
posted @ 2019-01-07 19:47 kexinxin 阅读(207) 评论(0) 推荐(0)
摘要: 路径交叉 给定一个含有 n 个正数的数组 x。从点 (0,0) 开始,先向北移动 x[0] 米,然后向西移动 x[1] 米,向南移动 x[2] 米,向东移动 x[3] 米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。 编写一个 O(1) 空间复杂度的一趟扫描算法,判断你所经过的路径是否相 阅读全文
posted @ 2019-01-07 19:42 kexinxin 阅读(298) 评论(0) 推荐(0)
摘要: 重新安排行程 给定一个机票的字符串二维数组[from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。 说明: 示例 1: 输入: [["MUC", "LHR"], [ 阅读全文
posted @ 2019-01-07 19:41 kexinxin 阅读(387) 评论(0) 推荐(0)
摘要: 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。 说明: 阅读全文
posted @ 2019-01-07 19:41 kexinxin 阅读(135) 评论(0) 推荐(0)
摘要: 验证二叉树的前序序列化 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如#。 例如,上面的二叉树可以被序列化为字符串"9,3,4,#,#,1,#,#,2,#,6,#,#",其中#代表一个空节点。 给定一串 阅读全文
posted @ 2019-01-07 19:40 kexinxin 阅读(634) 评论(0) 推荐(0)
摘要: 按要求补齐数组 给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。 示例 1: 输入: nums = [1, 阅读全文
posted @ 2019-01-07 19:39 kexinxin 阅读(251) 评论(0) 推荐(0)
摘要: 区间和的个数 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。 说明:最直观的算法复杂度是 O(n2) ,请在此基础上 阅读全文
posted @ 2019-01-07 19:37 kexinxin 阅读(509) 评论(0) 推荐(0)
摘要: 矩阵中的最长递增路径 给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1: 输入: nums = [ [9,9,4], [6,6,8], [2,1,1] ] 输出: 4 解释: 最长递增 阅读全文
posted @ 2019-01-07 19:37 kexinxin 阅读(156) 评论(0) 推荐(0)
摘要: 摆动排序II 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。 示例 1: 输入: nums = [1, 5, 1, 1, 6, 4] 输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6] 示例 2: 阅读全文
posted @ 2019-01-07 19:35 kexinxin 阅读(337) 评论(0) 推荐(0)
摘要: 零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 阅读全文
posted @ 2019-01-07 19:34 kexinxin 阅读(247) 评论(0) 推荐(0)
摘要: 拼接最大数 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。 求满足该条件的最大数。结果返回一个表示该最大数的长度为 k  阅读全文
posted @ 2019-01-07 19:33 kexinxin 阅读(780) 评论(0) 推荐(0)
摘要: 灯泡开关 初始时有 n 个灯泡关闭。第 1 轮,你打开所有的灯泡。第 2 轮,每两个灯泡你关闭一次。第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。对于第 n 轮,你只切换最后一个灯泡的开关。找出 n 轮后有多少个亮着的灯泡。 示例: 输 阅读全文
posted @ 2019-01-07 19:32 kexinxin 阅读(303) 评论(0) 推荐(0)
摘要: 最大单词长度乘积 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 输入: ["abcw","baz","foo","b 阅读全文
posted @ 2019-01-07 19:30 kexinxin 阅读(141) 评论(0) 推荐(0)
摘要: 去除重复字母 给定一个仅包含小写字母的字符串,去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例 1: 输入: "bcabc" 输出: "abc" 示例 2: 输入: "cbacdcbc" 输出: "acdb" Given the s 阅读全文
posted @ 2019-01-07 19:29 kexinxin 阅读(303) 评论(0) 推荐(0)
摘要: 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入: [5,2,6,1] 输出: [2,1,1,0] 解释: 5 的右侧有 2 阅读全文
posted @ 2019-01-07 19:28 kexinxin 阅读(726) 评论(0) 推荐(0)
摘要: 超级丑数 编写一段程序来查找第n个超级丑数。 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。 示例: 输入: n = 12, primes = [2,7,13,19] 输出: 32 解释: 给定长度为 4 的质数列表 primes = [2,7,13,19],前 12 阅读全文
posted @ 2019-01-07 19:27 kexinxin 阅读(180) 评论(0) 推荐(0)
摘要: 戳气球 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相 阅读全文
posted @ 2019-01-07 19:25 kexinxin 阅读(874) 评论(0) 推荐(1)
摘要: 最小高度树 对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。 格式 该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 ed 阅读全文
posted @ 2019-01-07 19:22 kexinxin 阅读(248) 评论(0) 推荐(0)
摘要: 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即 阅读全文
posted @ 2019-01-07 19:21 kexinxin 阅读(135) 评论(0) 推荐(0)
摘要: 区域检索-数组可修改 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。 示例: Given nums = [1, 3, 5] sumRa 阅读全文
posted @ 2019-01-07 19:19 kexinxin 阅读(100) 评论(0) 推荐(0)
摘要: 累加数 累加数是一个字符串,组成它的数字可以形成累加序列。 一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。 给定一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是累加数。 说明: 累加序列里的数不会以 0 开头, 阅读全文
posted @ 2019-01-07 19:18 kexinxin 阅读(366) 评论(0) 推荐(0)
摘要: 二维区域和检索 - 矩阵不可变 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。 上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和 阅读全文
posted @ 2019-01-07 19:17 kexinxin 阅读(263) 评论(0) 推荐(0)
摘要: 删除无效的括号 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。 说明: 输入可能包含了除 ( 和 ) 以外的字符。 示例 1: 输入: "()())()" 输出: ["()()()", "(())()"] 示例 2: 输入: "(a)())()" 输出: ["(a)()()", 阅读全文
posted @ 2019-01-07 19:15 kexinxin 阅读(366) 评论(0) 推荐(0)

导航