04 2021 档案

摘要:问题 给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足answer[i] % answer[j] == 0或answer[j] % answer[i] == 0。如果存在多个 阅读全文
posted @ 2021-04-23 11:09 tmpUser 阅读(70) 评论(0) 推荐(0)
摘要:问题 给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。 题目数据保证总会存在一个数值和不超过 k 的矩形区域。 示例 输入: matrix = [[1,0,1],[0,-2,3]], k = 2 输出: 2 解释: 蓝色边框圈出来的 阅读全文
posted @ 2021-04-22 21:49 tmpUser 阅读(103) 评论(0) 推荐(0)
摘要:Manacher算法可以在O(n)的时间复杂度解决最长回文串问题。 字符串预处理 为了避免讨论奇偶性,首先对原始字符串进行预处理,也就是在每个字符间隙加上#,即将aab变为#a#a#b#。当指向#时,代表回文串长度为偶数,否则为奇数。 string t = "#"; for (char c : s) 阅读全文
posted @ 2021-04-21 19:23 tmpUser 阅读(168) 评论(0) 推荐(0)
摘要:KMP算法用于解决字符串匹配问题,时间复杂度为O(m + n)。设s为待匹配字符串,'p'为m为模版字符串。'm'为s的长度,n为p的长度) 运用前后缀性质减少重复比较 从上图可以看出,当b与f失配时,与朴素暴力解法中直接将p后移一位继续比较不同,KMP方法利用p中存在的最长公共前后缀aa省略了重复 阅读全文
posted @ 2021-04-21 10:28 tmpUser 阅读(267) 评论(0) 推荐(0)
摘要:问题 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很 阅读全文
posted @ 2021-04-20 23:31 tmpUser 阅读(49) 评论(0) 推荐(0)
摘要:问题 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。 示例 输入: s = "barfoothefoobarm 阅读全文
posted @ 2021-04-16 15:29 tmpUser 阅读(64) 评论(0) 推荐(0)
摘要:问题 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 。 示例 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 解答1:固定长 阅读全文
posted @ 2021-04-16 11:34 tmpUser 阅读(62) 评论(0) 推荐(0)
摘要:问题 我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。 只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。 编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点 root1 和 root2 给出。 示例 输入 阅读全文
posted @ 2021-04-16 10:44 tmpUser 阅读(54) 评论(0) 推荐(0)
摘要:问题 使用下面描述的算法可以扰乱字符串 s 得到字符串 t : 如果字符串的长度为 1 ,算法停止 如果字符串的长度 > 1 ,执行下述步骤: 在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。 随机 阅读全文
posted @ 2021-04-16 10:18 tmpUser 阅读(80) 评论(0) 推荐(0)
摘要:问题 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 阅读全文
posted @ 2021-04-15 11:19 tmpUser 阅读(46) 评论(0) 推荐(0)
摘要:问题 中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。 示例 输入: nums = [1,3,-1,-3,5,3,6,7], k = 3 输出: [1,-1,-1,3,5,6] 解答 class Solution { public: vec 阅读全文
posted @ 2021-04-14 17:49 tmpUser 阅读(93) 评论(0) 推荐(0)
摘要:问题 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 示例 输入: nums1 = [1,3], nums2 = [2] 输出: 2.00000 解释: 合并数组 = [1,2,3] ,中位数 2 解答 class So 阅读全文
posted @ 2021-04-08 16:49 tmpUser 阅读(44) 评论(0) 推荐(0)
摘要:问题 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nu 阅读全文
posted @ 2021-04-08 11:01 tmpUser 阅读(36) 评论(0) 推荐(0)
摘要:问题 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], .. 阅读全文
posted @ 2021-04-08 10:54 tmpUser 阅读(59) 评论(0) 推荐(0)
摘要:问题 给定一个字符串 S,计算 S 的不同非空子序列的个数。 因为结果可能很大,所以返回答案模 10^9 + 7. 示例 输入: "aba" 输出: 6 解释: 6 个不同的子序列分别是 "a", "b", "ab", "ba", "aa" 以及 "aba"。 解答 class Solution { 阅读全文
posted @ 2021-04-06 16:19 tmpUser 阅读(96) 评论(0) 推荐(0)
摘要:问题 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带 阅读全文
posted @ 2021-04-06 10:41 tmpUser 阅读(61) 评论(0) 推荐(0)
摘要:问题 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 输入: nums = [1,1,1,2,2,3] 输出: 5, nums 阅读全文
posted @ 2021-04-06 10:12 tmpUser 阅读(50) 评论(0) 推荐(0)
摘要:问题 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。 示例 输入: s = "mbadm" 输出: 2 解释: 字符串可变为 "mbdadbm" 或者 "mdbabdm" 。 解答1:编 阅读全文
posted @ 2021-04-05 11:28 tmpUser 阅读(215) 评论(0) 推荐(0)
摘要:问题 颠倒给定的 32 位无符号整数的二进制位。 示例 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解答 class Solution { public: uint32_t reverseBits 阅读全文
posted @ 2021-04-04 23:56 tmpUser 阅读(35) 评论(0) 推荐(0)
摘要:问题 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此 阅读全文
posted @ 2021-04-04 23:21 tmpUser 阅读(51) 评论(0) 推荐(0)
摘要:问题 我们用一个特殊的字符串 S 来表示一份单词列表,之所以能展开成为一个列表,是因为这个字符串 S 中存在一个叫做「选项」的概念: 单词中的每个字母可能只有一个选项或存在多个备选项。如果只有一个选项,那么该字母按原样表示。 如果存在多个选项,就会以花括号包裹来表示这些选项(使它们与其他字母分隔开) 阅读全文
posted @ 2021-04-04 21:22 tmpUser 阅读(846) 评论(0) 推荐(0)
摘要:问题 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例 输入: S = "a1b2" 输出: ["a1b2", "a1B2", "A1b2", "A1B2"] 解答1:DFS class Solution { public: v 阅读全文
posted @ 2021-04-04 18:39 tmpUser 阅读(92) 评论(0) 推荐(0)
摘要:问题 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 输入: nums = [1,2,3] 输出: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 解答 阅读全文
posted @ 2021-04-04 17:10 tmpUser 阅读(50) 评论(0) 推荐(0)
摘要:问题 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 说明: answers 的长度最大为1000。 answers[i] 是在 [0, 999] 范围内的整数。 示例 输入: 阅读全文
posted @ 2021-04-04 14:13 tmpUser 阅读(94) 评论(0) 推荐(0)
摘要:问题 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形 阅读全文
posted @ 2021-04-04 11:03 tmpUser 阅读(62) 评论(0) 推荐(0)
摘要:问题 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天) 阅读全文
posted @ 2021-04-03 20:43 tmpUser 阅读(61) 评论(0) 推荐(0)
摘要:问题 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 注意:这里的一笔交易指买 阅读全文
posted @ 2021-04-03 20:17 tmpUser 阅读(52) 评论(0) 推荐(0)
摘要:问题 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 阅读全文
posted @ 2021-04-03 20:07 tmpUser 阅读(41) 评论(0) 推荐(0)
摘要:问题 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 输入: [7,1,5,3,6,4] 输出: 7 解答1:完整 阅读全文
posted @ 2021-04-03 19:52 tmpUser 阅读(48) 评论(0) 推荐(0)
摘要:问题 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 输入: prices = [3,3,5,0,0,3,1,4] 输出: 6 解答 阅读全文
posted @ 2021-04-03 16:21 tmpUser 阅读(55) 评论(0) 推荐(0)
摘要:问题 给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 输入: k = 2, prices 阅读全文
posted @ 2021-04-03 15:48 tmpUser 阅读(67) 评论(0) 推荐(0)
摘要:问题 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 输入: s = "leetcode", wordDict = ["leet", " 阅读全文
posted @ 2021-04-02 17:31 tmpUser 阅读(70) 评论(0) 推荐(0)
摘要:问题 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。 示例 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4 解答 cla 阅读全文
posted @ 2021-04-02 16:47 tmpUser 阅读(65) 评论(0) 推荐(0)
摘要:问题 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 输入: strs = ["10", "0001", " 阅读全文
posted @ 2021-04-02 15:29 tmpUser 阅读(82) 评论(0) 推荐(0)
摘要:问题 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例 输入: nums: [1, 1, 1, 1, 1 阅读全文
posted @ 2021-04-02 14:36 tmpUser 阅读(57) 评论(0) 推荐(0)
摘要:问题 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x ⇐ y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头 阅读全文
posted @ 2021-04-02 14:15 tmpUser 阅读(85) 评论(0) 推荐(0)
摘要:问题 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 解答1:背包问题模版 class Solution { public: bool 阅读全文
posted @ 2021-04-02 14:01 tmpUser 阅读(80) 评论(0) 推荐(0)
摘要:问题 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意:答案中不可以包含重复的四元组。 示例 输入: nums = [ 阅读全文
posted @ 2021-04-02 10:00 tmpUser 阅读(68) 评论(0) 推荐(0)
摘要:问题 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 输入: nums = [-1,0,1,2,-1,-4] 输出: [[-1,-1, 阅读全文
posted @ 2021-04-02 09:51 tmpUser 阅读(51) 评论(0) 推荐(0)
摘要:问题 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 输入: nums = [2,7,11,15] 阅读全文
posted @ 2021-04-02 09:41 tmpUser 阅读(45) 评论(0) 推荐(0)
摘要:问题 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 people 所表示的队列。返回的 阅读全文
posted @ 2021-04-01 19:00 tmpUser 阅读(62) 评论(0) 推荐(0)