每日一题
_trickle
前端
展开
-
每日一题-1108. IP 地址无效化_Python
给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。原创 2022-06-21 11:04:06 · 483 阅读 · 0 评论 -
每日一题-1051. 高度检查器_Python
学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照非递减的高度顺序排成一行。排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。给你一个整数数组 heights ,表示当前学生站位的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。返回满足 heights[i] != expected[i] 的下标数量。...原创 2022-06-13 17:09:21 · 142 阅读 · 0 评论 -
每日一题-1021. 删除最外层的括号_Python
有效括号字符串为空 “”、“(” + A + “)” 或 A + B ,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,“”,“()”,“(())()” 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 s 非空,且不存在将其拆分为 s = A + B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 s,考虑将其进行原语化分解,使得:s = P_1 + P_2 + … + P_k,其中 P..原创 2022-05-28 12:25:31 · 181 阅读 · 0 评论 -
每日一题-面试题 17.11. 单词距离_Python
有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?示例:输入:words = [“I”,“am”,“a”,“student”,“from”,“a”,“university”,“in”,“a”,“city”], word1 = “a”, word2 = “student”输出:1提示:words.length <= 100000程序代码class So.原创 2022-05-27 11:41:15 · 67 阅读 · 0 评论 -
每日一题-965. 单值二叉树_Python
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1, 100]。每个节点的值都是整数,范围为 [0, 99] 。程序代码# Definition for a binary tree node.# class TreeNode:..原创 2022-05-24 12:39:51 · 59 阅读 · 0 评论 -
每日一题-961. 在长度 2N 的数组中找出重复 N 次的元素_Python
给你一个整数数组 nums ,该数组具有以下属性:nums.length == 2 * n.nums 包含 n + 1 个不同的元素nums 中恰有一个元素重复 n 次找出并返回重复了 n 次的那个元素。示例 1:输入:nums = [1,2,3,3]输出:3示例 2:输入:nums = [2,1,2,5,3,2]输出:2示例 3:输入:nums = [5,1,5,2,5,3,5,4]输出:5提示:2 <= n <= 5000nums.len原创 2022-05-21 12:19:18 · 226 阅读 · 0 评论 -
每日一题-面试题 01.05. 一次编辑_Python
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入:first = “pale”second = “ple”输出: True示例 2:输入:first = “pales”second = “pal”输出: False程序代码class Solution: def oneEditAway(self, first: str, second: str) -> boo.原创 2022-05-13 12:54:49 · 294 阅读 · 0 评论 -
每日一题-944. 删列造序_Python
给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。这些字符串可以每个一行,排成一个网格。例如,strs = [“abc”, “bce”, “cae”] 可以排列为:abcbcecae你需要找出并删除 不是按字典序升序排列的 列。在上面的例子(下标从 0 开始)中,列 0(‘a’, ‘b’, ‘c’)和列 2(‘c’, ‘e’, ‘e’)都是按升序排列的,而列 1(‘b’, ‘c’, ‘a’)不是,所以要删除列 1 。返回你需要删除的列数。示例..原创 2022-05-12 10:16:16 · 55 阅读 · 0 评论 -
每日一题-442. 数组中重复的数据_Python
给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[2,3]示例 2:输入:nums = [1,1,2]输出:[1]示例 3:输入:nums = [1]输出:[]提示:n == ..原创 2022-05-08 09:26:06 · 501 阅读 · 0 评论 -
每日一题-933. 最近的请求次数_Python
写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示例 1:输入:[“RecentCoun.原创 2022-05-06 09:48:33 · 122 阅读 · 0 评论 -
每日一题-713. 乘积小于 K 的子数组_Python
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。示例 2:输入:nums = [1,2,3], k = 0输出:0提示:1 <= n.原创 2022-05-05 07:51:22 · 841 阅读 · 0 评论 -
每日一题-937. 重新排列日志文件_Python
给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。有两种不同类型的日志:字母日志:除标识符之外,所有字均由小写字母组成数字日志:除标识符之外,所有字均由数字组成请按下述规则将日志重新排序:所有 字母日志 都排在 数字日志 之前。字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序。数字日志 应该保留原来的相对顺序。返回日志的最终顺序。示例 1:输入:logs = [“dig1 8 1 5 1”,.原创 2022-05-03 09:09:01 · 170 阅读 · 1 评论 -
每日一题-1305. 两棵二叉搜索树中的所有元素_Python
给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。.示例 1:输入:root1 = [2,1,4], root2 = [1,0,3]输出:[0,1,1,2,3,4]示例 2:输入:root1 = [1,null,8], root2 = [8,1]输出:[1,1,8,8]提示:每棵树的节点数在 [0, 5000] 范围内-10^5 <= Node.val <= 10^5程序代码# Defini.原创 2022-05-01 09:06:19 · 65 阅读 · 0 评论 -
每日一题-908. 最小差值 I_Python
给你一个整数数组 nums,和一个整数 k 。在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。nums 的 分数 是 nums 中最大和最小元素的差值。在对 nums 中的每个索引最多应用一次上述操作后,返回 nums 的最低 分数 。示例 1:输入:nums = [1], ..原创 2022-04-30 09:02:37 · 792 阅读 · 0 评论 -
每日一题-905. 按奇偶排序数组_Python
给你一个整数数组 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 18:09:33 · 813 阅读 · 0 评论 -
每日一题-398. 随机数索引_Python
给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例: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 09:57:13 · 98 阅读 · 0 评论 -
每日一题-868. 二进制间距_Python
给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。示例 1:输入:n = 22输出:2解释:22 的二进制是 “10110” 。在 22 的二进制表示中,有三个 1,组成两对相邻的 1 。第一对相邻的 1 中,两个 1 ..原创 2022-04-24 09:09:07 · 336 阅读 · 0 评论 -
每日一题-396. 旋转函数_Python
给定一个长度为 n 的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为:F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n - 1) * arrk[n - 1]返回 F(0), F(1), …, F(n-1)中的最大值 。生成的测试用例让答案符合 32 位 整数。示例 1:输入: nums = [4,3,2,6]输出: 26解释:F(0) = (0 *..原创 2022-04-22 09:37:47 · 1625 阅读 · 0 评论 -
每日一题-824. 山羊拉丁文_Python
给你一个由若干单词组成的句子 sentence ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。请你将句子转换为 “山羊拉丁文(Goat Latin)”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(‘a’, ‘e’, ‘i’, ‘o’, ‘u’),在单词后添加"ma"。例如,单词 “apple” 变为 “applema” 。如果单词以辅音字母开头(即,非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"。例如,单词 .原创 2022-04-21 09:04:13 · 143 阅读 · 0 评论 -
每日一题-386. 字典序排数_Python
给你一个整数 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^4程序代码class Solution: def lexicalOrder(self, n: int) -> List[int..原创 2022-04-18 12:11:16 · 289 阅读 · 0 评论 -
每日一题-819. 最常见的单词_Python
给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入:paragraph = “Bob hit a ball, the hit BALL flew far after it was hit.”banned = [“hit”]输出: “ball”解释:“hit..原创 2022-04-17 17:32:13 · 87 阅读 · 0 评论 -
每日一题-1672. 最富有客户的资产总量_Python
给你一个 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 ..原创 2022-04-14 11:47:55 · 115 阅读 · 0 评论 -
每日一题-380. O(1) 时间插入、删除和获取随机元素_Python
实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true ;否则,返回 false 。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有 相同的概原创 2022-04-13 18:46:14 · 79 阅读 · 0 评论 -
每日一题-357. 统计各位数字都不同的数字个数_Python
排列组合公式9×A 9 d−1给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10^n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。示例 2:输入:n = 0输出:1提示:0 <= n <= 8程序代码class Solution: def countNumbersWithU原创 2022-04-11 12:37:37 · 444 阅读 · 0 评论 -
每日一题-804. 唯一摩尔斯密码词_Python
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:‘a’ 对应 “.-” ,‘b’ 对应 “-…” ,‘c’ 对应 “-.-.” ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[“.-”,“-…”,“-.-.”,“-…”,“.”,“…-.”,“–.”,“…”,“…”,“.—”,“-.-”,“.-…”,“–”,“-.”,“—”,“.–.”,“–.-”,“.-.”,“…”,“-”,“…-”,“…-”,“.–”,“-…-”,“-.原创 2022-04-10 18:52:33 · 76 阅读 · 0 评论 -
每日一题-429. N 叉树的层序遍历_Python
给定一个 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]输出:[..原创 2022-04-08 13:15:29 · 116 阅读 · 0 评论 -
每日一题-796. 旋转字符串_Python
给定两个字符串, 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 11:43:01 · 730 阅读 · 0 评论 -
每日一题-744. 寻找比目标字母大的最小字母_Python
给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’示例 1:输入: letters = [“c”, “f”, “j”],target = “a”输出: “c”示例 2:输入: letters = [“c”,“f”,“..原创 2022-04-03 10:36:54 · 57 阅读 · 0 评论 -
每日一题-954. 二倍数对数组_Python
给定一个长度为偶数的整数数组 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 09:28:00 · 630 阅读 · 0 评论 -
每日一题-693. 交替位二进制数_Python
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.提示:1 <= n <= 2^31 - 1程序代码class Solution: def hasA.原创 2022-03-28 10:43:35 · 574 阅读 · 0 评论 -
每日一题-2028. 找出缺失的观测数据_Python
现有一份 n + m 次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n + m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls ,其中 rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组,包含所有缺失的观测数据,且满足这 n + m 次投掷的 平均值 是 mean 。如果存在多组符合要求的答案,只需要返回其中任意..原创 2022-03-27 08:45:01 · 148 阅读 · 0 评论 -
每日一题-682. 棒球比赛_Python
你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数.原创 2022-03-26 09:30:45 · 241 阅读 · 0 评论 -
每日一题-172. 阶乘后的零_Python
给定一个整数 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 <= 10^4程序代码class Solution: def trailingZeroes(s..原创 2022-03-25 08:48:46 · 1243 阅读 · 0 评论 -
每日一题-2038. 如果相邻两个颜色均相同则删除当前颜色_Python
总共有 n 个颜色片段排成一列,每个颜色片段要么是 ‘A’ 要么是 ‘B’ 。给你一个长度为 n 的字符串 colors ,其中 colors[i] 表示第 i 个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Alice 先手 。如果一个颜色片段为 ‘A’ 且 相邻两个颜色 都是颜色 ‘A’ ,那么 Alice 可以删除该颜色片段。Alice 不可以 删除任何颜色 ‘B’ 片段。如果一个颜色片段为 ‘B’ 且 相邻两个颜色 都是颜色 ‘B’ ,那么 B.原创 2022-03-22 16:35:16 · 66 阅读 · 0 评论 -
每日一题-653. 两数之和 IV - 输入 BST_Python
给定一个二叉搜索树 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, 10^4].-10^4 <= Node.val <= 10^4root 为二叉搜索树-10^5 .原创 2022-03-21 09:14:42 · 1226 阅读 · 0 评论 -
每日一题-606. 根据二叉树创建字符串_Python
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: “1(2(4))(3)”解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”..原创 2022-03-19 10:13:03 · 72 阅读 · 0 评论 -
每日一题-2043. 简易银行系统_Python
你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。请你执行所有 有效的 交易。如果满足下面全部条件,则交易 有效 :指定的账户数量在 1 和 n 之间,且取款或者转账需要的钱的总数 小于或者等于 账户余额。实现 Bank 类:Bank(long[] ba..原创 2022-03-18 10:19:14 · 86 阅读 · 0 评论 -
每日一题-720. 词典中最长的单词_Python
给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入:words = [“w”,“wo”,“wor”,“worl”, “world”]输出:“world”解释: 单词"world"可由"w", “wo”, “wor”, 和 "worl"逐步添加一个字母组成。示例 2:输入:words = ..原创 2022-03-17 10:37:57 · 356 阅读 · 0 评论 -
每日一题-599. 两个列表的最小索引总和_Python
假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。示例 1:输入: list1 = [“Shogun”, “Tapioca Express”, “Burger King”, “KFC”],list2 = [“Piatti”, “The Grill at Torrey Pines”, “Hun..原创 2022-03-14 08:42:48 · 935 阅读 · 0 评论 -
每日一题-504. 七进制数_Python
给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。示例 1:输入: num = 100输出: “202”示例 2:输入: num = -7输出: “-10”提示:-10^7 <= num <= 10^7程序代码class Solution: def convertToBase7(self, num: int) -> str: if num == 0: return '0' st.原创 2022-03-07 10:36:58 · 423 阅读 · 0 评论