![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode每日
记录每日leetcode题目解法
ZzBoAYU
1.01 >> 0.99
展开
-
leetcode每日-2022.09-19-1636. 按照频率将数组升序排序
'2' 和 '3' 频率都为 2 ,所以它们之间按照数值本身降序排序。'3' 频率为 1,'1' 频率为 2,'2' 频率为 3。如果有多个值的频率相同,请你按照数值本身将它们。,请你将数组按照每个值的频率。请你返回排序后的数组。原创 2022-09-19 01:15:47 · 99 阅读 · 0 评论 -
leetcode每日-2022.09-17-1624. 两个相同字符之间的最长子字符串
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1。解释:最优的子字符串是 "abba" ,其他的非最优解包括 "bb" 和 ""。解释:s 中不存在出现出现两次的字符,所以返回 -1。解释:最优的子字符串是两个 'a' 之间的空子字符串。子字符串 是字符串中的一个连续字符序列。解释:最优的子字符串是 "bc"。输入:s = "cabbac"输入:s = "cbzxy"输入:s = "abca"输入:s = "aa"原创 2022-09-17 02:11:00 · 96 阅读 · 0 评论 -
leetcode每日-2022.09-15-1619. 删除某些元素后的数组均值
输入:arr = [4,8,4,10,0,7,1,3,7,8,8,3,4,1,6,2,1,1,8,0,9,8,0,3,9,10,3,10,1,10,7,3,2,1,4,9,10,7,6,4,0,8,5,1,2,1,6,2,5,0,7,10,9,10,3,7,10,5,8,5,7,6,7,6,10,9,5,10,5,5,7,2,10,7,7,8,2,0,1,1]输入:arr = [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3]商业转载请联系官方授权,非商业转载请注明出处。转载 2022-09-14 02:58:04 · 109 阅读 · 0 评论 -
leetcode每日-2022.09-13-670. 最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。给定数字的范围是 [0, 108]。解释: 交换数字2和数字7。解释: 不需要交换。原创 2022-09-13 16:39:14 · 82 阅读 · 0 评论 -
leetcode每日-2022.09-12-1608. 特殊数组的特征值
如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的。如果 x = 0,应该有 0 个元素 >= x,但实际有 2 个。如果 x = 1,应该有 1 个元素 >= x,但实际有 0 个。如果 x = 2,应该有 2 个元素 >= x,但实际有 0 个。输入:nums = [0,4,3,0,4]输入:nums = [3,6,7,7,0]原创 2022-09-12 10:43:26 · 109 阅读 · 0 评论 -
leetcode每日-2022.09.10-669. 修剪二叉搜索树
通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3。所以结果应当返回修剪好的二叉搜索树的新的根节点。输入:root = [1,0,2], low = 1, high = 2。输出:[3,2,null,1]树中每个节点的值都是 唯一 的。输出:[1,null,2]原创 2022-09-10 09:09:17 · 69 阅读 · 0 评论 -
leetcode每日-2022.09.09-1598. 文件夹操作日志搜集器
输入:logs = ["d1/","d2/","./","d3/","../","d31/"]"../" :移动到当前文件夹的父文件夹。输入:logs = ["d1/","d2/","../","d21/","./"]"x/" :移动到名为 x 的子文件夹中。输入:logs = ["d1/","../","../","../"]执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最小步数。解释:执行 "../" 操作变更文件夹 2 次,即可回到主文件夹。"./" :继续停留在当前文件夹。原创 2022-09-09 09:17:05 · 76 阅读 · 0 评论 -
leetcode每日-2022.09.08-667. 优美的排列 II
优美的排列 II原创 2022-09-08 09:06:03 · 137 阅读 · 0 评论 -
leetcode每日-2022.09.07-1592. 重新排列单词间的空格
重新排列单词间的空格原创 2022-09-07 23:57:10 · 75 阅读 · 0 评论 -
leetcode每日-2022.06.07-875. 爱吃香蕉的珂珂
leetcode每日-2022.06.07-875. 爱吃香蕉的珂珂原创 2022-06-07 10:01:51 · 78 阅读 · 0 评论 -
leetcode每日-2022.05.29-468. 验证IP地址
给定一个字符串queryIP。如果是有效的 IPv4 地址,返回 "IPv4" ;如果是有效的 IPv6 地址,返回 "IPv6" ;如果不是上述类型的 IP 地址,返回 "Neither" 。有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中0 <= xi<= 255且xi不能包含 前导零。例如:“192.168.1.1”、 “192.168.1.0” 为有效IPv4地址, “192.168.01.1” 为无效IPv4地址; “192.168.1....原创 2022-05-29 10:28:57 · 105 阅读 · 0 评论 -
leetcode每日-2022.04.28-905. 按奇偶排序数组
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。返回满足此条件的 任一数组 作为答案。示例 1:输入:nums = [3,1,2,4]输出:[2,4,3,1]解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2:输入:nums = [0]输出:[0]提示:1 <= nums.length <= 50000 <= nums[i] <= 5000..原创 2022-04-28 14:34:54 · 71 阅读 · 0 评论 -
leetcode每日-2022.04.25-398. 随机数索引
给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例:int[] nums = new int[] {1,2,3,3,3};Solution solution = new Solution(nums);// pick(3) 应该返回索引 2,3 或者 4。每个索引的返回概率应该相等。solution.pick(3);// pick(1) 应该返回 0。因.原创 2022-04-25 08:56:49 · 85 阅读 · 0 评论 -
leetcode每日-2022.04.18-386. 字典序排数
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]提示:1 <= n <= 5 * 10^4class Solution {public: vector<int> lexicalOrder(int n) {..原创 2022-04-18 08:57:42 · 56 阅读 · 0 评论 -
leetcode每日-2022.04.14-1672. 最富有客户的资产总量
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2 + 1 = 6两位客户.原创 2022-04-14 08:17:54 · 67 阅读 · 0 评论 -
leetcode每日-2022.04.13-380. O(1) 时间插入、删除和获取随机元素
实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true ;否则,返回 false 。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有 相同的.原创 2022-04-13 08:58:28 · 84 阅读 · 0 评论 -
leetcode每日-2022.04.12-806. 写字符串需要的行数
我们要把给定的字符串 S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你的答案作为长度为2的整数列表返回。示例 1:输入:...原创 2022-04-12 08:16:28 · 62 阅读 · 0 评论 -
leetcode每日-2022.04.11-357. 统计各位数字都不同的数字个数
给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。示例 2:输入:n = 0输出:1提示:0 <= n <= 8通过次数41,472提交次数72,910这就是一道数学题,公示推出来就行了f(0) = 1;f(1) = ...原创 2022-04-11 12:33:41 · 314 阅读 · 0 评论 -
leetcode每日-2022.04.10-804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:'a' 对应 ".-" ,'b' 对应 "-..." ,'c' 对应 "-.-." ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",..原创 2022-04-10 08:43:07 · 59 阅读 · 0 评论 -
leetcode每日-2022.04.09-780. 到达终点
给定四个整数sx,sy,tx和ty,如果通过一系列的转换可以从起点(sx, sy)到达终点(tx, ty),则返回 true,否则返回false。从点(x, y)可以转换到(x, x+y)或者(x+y, y)。示例 1:输入: sx = 1, sy = 1, tx = 3, ty = 5输出: true解释:可以通过以下一系列转换从起点转换到终点:(1, 1) -> (1, 2)(1, 2) -> (3, 2)(3, 2) ->...原创 2022-04-09 09:06:57 · 249 阅读 · 0 评论 -
leetcode每日-2022.04.08-429. N 叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1.原创 2022-04-08 09:16:35 · 59 阅读 · 0 评论 -
leetcode每日-2022.04.07-796. 旋转字符串
给定两个字符串, s和goal。如果在若干次旋转操作之后,s能变成goal,那么返回true。s的 旋转操作 就是将s 最左边的字符移动到最右边。例如, 若s = 'abcde',在旋转一次之后结果就是'bcdea'。示例 1:输入: s = "abcde", goal = "cdeab"输出: true示例 2:输入: s = "abcde", goal = "abced"输出: false提示:1 <= s.length, goa...原创 2022-04-07 08:39:08 · 203 阅读 · 0 评论 -
leetcode每日-2022.04.05-762. 二进制表示中质数个计算置位
给你两个整数left和right ,在闭区间 [left, right]范围内,统计并返回 计算置位位数为质数 的整数个数。计算置位位数 就是二进制表示中 1 的个数。例如, 21的二进制表示10101有 3 个计算置位。示例 1:输入:left = 6, right = 10输出:4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 是质数)9 -> 1001 (2 个计算置位,2 是质数)10-&...原创 2022-04-05 08:28:52 · 226 阅读 · 0 评论 -
leetcode每日-2022.04.03-744. 寻找比目标字母大的最小字母
给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = 'z' 并且字符列表为letters = ['a', 'b'],则答案返回'a'示例 1:输入: letters = ["c", "f", "j"],target = "a"输出: "c"示例 2:输入: letters = ["c","f","j"]...原创 2022-04-03 17:03:56 · 57 阅读 · 0 评论 -
leetcode每日-2022.04.01-954. 二倍数对数组
给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <=i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]”时,返回 true;否则,返回 false。示例 1:输入:arr = [3,1,3,6]输出:false示例 2:输入:arr = [2,1,2,6]输出:false示例 3:输入:arr = [4,-2,2,-4]输出:true解释:可以用 [-2,-4] 和...原创 2022-04-01 08:32:22 · 87 阅读 · 0 评论 -
leetcode每日-2022.03-31-728. 自除数
自除数是指可以被它包含的每一位数整除的数。例如,128 是一个 自除数 ,因为128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。自除数 不允许包含 0 。给定两个整数left和right ,返回一个列表,列表的元素是范围[left, right]内所有的 自除数 。示例 1:输入:left = 1, right = 22输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]示例 2:输入:left...原创 2022-03-31 08:11:49 · 62 阅读 · 0 评论 -
leetcode每日-2022.03-30-1606. 找到处理最多请求的服务器
你有 k个服务器,编号为 0到 k-1,它们可以同时处理多个请求组。每个服务器有无穷的计算能力但是 不能同时处理超过一个请求。请求分配到服务器的规则如下:第i(序号从 0 开始)个请求到达。如果所有服务器都已被占据,那么该请求被舍弃(完全不处理)。如果第(i % k)个服务器空闲,那么对应服务器会处理该请求。否则,将请求安排给下一个空闲的服务器(服务器构成一个环,必要的话可能从第 0 个服务器开始继续找下一个空闲的服务器)。比方说,如果第 i个服务器在忙,那么会查看第 (i+1...原创 2022-03-30 09:49:43 · 79 阅读 · 0 评论 -
leetcode每日-2022.03-29-2024. 考试的最大困扰度
一位老师正在出一场由 n道判断题构成的考试,每道题的答案为 true (用 'T' 表示)或者 false (用 'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有 连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串answerKey,其中answerKey[i]是第 i个问题的正确结果。除此以外,还给你一个整数 k,表示你能进行以下操作的最多次数:每次操作中,将问题的正确答案改为'T' 或者'F'(也就是将 a...原创 2022-03-29 19:40:14 · 91 阅读 · 0 评论 -
leetcode每日-2022.03-27-2028. 找出缺失的观测数据
现有一份 n + m次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余m 次投掷的数据。幸好你有之前计算过的这 n + m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls ,其中rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组,包含所有缺失的观测数据,且满足这 n + m 次投掷的 平均值 是 mean 。如果存在多组符合要求的答案,只需要返回其中任意一组即...原创 2022-03-27 09:17:03 · 82 阅读 · 0 评论 -
leetcode每日-2022.03-26-682. 棒球比赛
你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则: 整数 x - 表示本回合新获得分数 x "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。 "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前...原创 2022-03-26 09:05:23 · 75 阅读 · 0 评论 -
leetcode每日-2022.03-25-172. 阶乘后的零
给定一个整数 n ,返回 n! 结果中尾随零的数量。提示n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1示例 1:输入:n = 3输出:0解释:3! = 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5! = 120 ,有一个尾随 0示例 3:输入:n = 0输出:0提示:0 <= n <= 104class Solution {public: int trailingZe...原创 2022-03-25 14:51:39 · 265 阅读 · 0 评论 -
leetcode每日-2022.03-24-661. 图片平滑器
图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。给你一个表示图像灰度的 m x n 整数矩阵 img ,返回对图像的每个单元格平滑处理后的图像 。..原创 2022-03-24 08:15:25 · 417 阅读 · 0 评论 -
leetcode每日-2022.03-22-2038. 如果相邻两个颜色均相同则删除当前颜色
总共有 n 个颜色片段排成一列,每个颜色片段要么是 'A' 要么是 'B' 。给你一个长度为 n 的字符串 colors ,其中 colors[i] 表示第 i 个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Alice 先手 。 如果一个颜色片段为 'A' 且 相邻两个颜色 都是颜色 'A' ,那么 Alice 可以删除该颜色片段。Alice 不可以 删除任何颜色 'B' 片段。 如果一个颜色片段为 'B' 且 相邻两个颜色 都是颜色 '...原创 2022-03-22 16:34:32 · 95 阅读 · 0 评论 -
leetcode每日-2022.03-21-653. 两数之和 IV - 输入 BST
给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。示例 1:输入: root = [5,3,6,2,4,null,7], k = 9输出: true示例 2:输入: root = [5,3,6,2,4,null,7], k = 28输出: false提示: 二叉树的节点个数的范围是 [1, 104]. -104 <= Node.val <= 104 root ...原创 2022-03-21 23:31:47 · 73 阅读 · 0 评论 -
leetcode每日-2022.03-19-606. 根据二叉树创建字符串
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”。示...原创 2022-03-19 14:36:54 · 99 阅读 · 0 评论 -
leetcode每日-2022.03.18-2043.简易银行系统
你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。请你执行所有 有效的 交易。如果满足下面全部条件,则交易 有效 : 指定的账户数量在 1 和 n 之间,且 取款或者转账需要的钱的总数 小于或者等于 账户余额。实现 Bank 类: Bank(l...原创 2022-03-18 22:53:33 · 99 阅读 · 0 评论 -
leetcode每日-2022.01.22-1332.删除回文子序列
给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。示例 1:输入:s = "ababa"输出:1解释:字符串本身就是回文序列,只需要删除一次。示例 2:输入.原创 2022-01-22 23:30:01 · 289 阅读 · 0 评论 -
leetcode每日-2022.01.15-1716.计算力扣银行的钱
Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。示例 1:输入:n = 4输出:10解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。示例 2:输入:n = 10输出:37解释:第 10 天后,总额为 (1 + 2 + .原创 2022-01-15 01:43:23 · 106 阅读 · 0 评论 -
leetcode每日-2022.01.14-373.查找和最小的K对数字
给定两个以 升序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) ... (uk,vk) 。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数: [1,2],[1,4],[1,6]...原创 2022-01-14 21:41:11 · 277 阅读 · 0 评论 -
leetcode每日-2022.01.13-747.至少是其他数字两倍的最大数
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。示例 1:输入:nums = [3,6,1,0]输出:1解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。示例 2:输入:nums = [1,2,3,4]输出:-1解释:4 没有超过 3 的两倍大,所以返回 -1 。示例.原创 2022-01-13 00:33:03 · 92 阅读 · 0 评论