Leetcode-cn.com 2022-03-28
🟢 693.binary-number-with-alternating-bits
🏷️ Tags
#bit_manipulation
Description
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。
Example
🟢 693.binary-number-with-alternating-bits
🏷️ Tags
#bit_manipulation
Description
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。
Example
输入:n = 5
输出:true
解释:5 的二进制表示是:101
Leetcode-cn.com 2022-03-30
🔴 1606.find-servers-that-handled-most-number-of-requests
🏷️ Tags
#greedy #array #ordered_set #heap_priority_queue
Description
你有
第
如果所有服务器都已被占据,那么该请求被舍弃(完全不处理)。
如果第
否则,将请求安排给下一个空闲的服务器(服务器构成一个环,必要的话可能从第 0 个服务器开始继续找下一个空闲的服务器)。比方说,如果第
给你一个 严格递增 的正整数数组
请你返回包含所有 最繁忙服务器 序号的列表,你可以以任意顺序返回这个列表。
Example
🔴 1606.find-servers-that-handled-most-number-of-requests
🏷️ Tags
#greedy #array #ordered_set #heap_priority_queue
Description
你有
k 个服务器,编号为 0 到 k-1 ,它们可以同时处理多个请求组。每个服务器有无穷的计算能力但是 不能同时处理超过一个请求 。请求分配到服务器的规则如下:第
i (序号从 0 开始)个请求到达。如果所有服务器都已被占据,那么该请求被舍弃(完全不处理)。
如果第
(i % k) 个服务器空闲,那么对应服务器会处理该请求。否则,将请求安排给下一个空闲的服务器(服务器构成一个环,必要的话可能从第 0 个服务器开始继续找下一个空闲的服务器)。比方说,如果第
i 个服务器在忙,那么会查看第 (i+1) 个服务器,第 (i+2) 个服务器等等。给你一个 严格递增 的正整数数组
arrival ,表示第 i 个任务的到达时间,和另一个数组 load ,其中 load[i] 表示第 i 个请求的工作量(也就是服务器完成它所需要的时间)。你的任务是找到 最繁忙的服务器 。最繁忙定义为一个服务器处理的请求数是所有服务器里最多的。请你返回包含所有 最繁忙服务器 序号的列表,你可以以任意顺序返回这个列表。
Example
输入:k = 3, arrival = [1,2,3,4,5], load = [5,2,3,3,3]
输出:[1]
解释:
所有服务器一开始都是空闲的。
前 3 个请求分别由前 3 台服务器依次处理。
请求 3 进来的时候,服务器 0 被占据,所以它呗安排到下一台空闲的服务器,也就是服务器 1 。
请求 4 进来的时候,由于所有服务器都被占据,该请求被舍弃。
服务器 0 和 2 分别都处理了一个请求,服务器 1 处理了两个请求。所以服务器 1 是最忙的服务器。
Leetcode-cn.com 2022-03-31
🟢 728.self-dividing-numbers
🏷️ Tags
#math
Description
自除数 是指可以被它包含的每一位数整除的数。
例如,
自除数 不允许包含 0 。
给定两个整数
Example
🟢 728.self-dividing-numbers
🏷️ Tags
#math
Description
自除数 是指可以被它包含的每一位数整除的数。
例如,
128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。自除数 不允许包含 0 。
给定两个整数
left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。Example
输入:left = 1, right = 22
输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
Leetcode-cn.com 2022-04-01
🟡 954.array-of-doubled-pairs
🏷️ Tags
#greedy #array #hash_table #sorting
Description
给定一个长度为偶数的整数数组
Example
🟡 954.array-of-doubled-pairs
🏷️ Tags
#greedy #array #hash_table #sorting
Description
给定一个长度为偶数的整数数组
arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。Example
输入:arr = [3,1,3,6]
输出:false
Leetcode-cn.com 2022-04-02
🔴 420.strong-password-checker
🏷️ Tags
#greedy #string #heap_priority_queue
Description
Example
🔴 420.strong-password-checker
🏷️ Tags
#greedy #string #heap_priority_queue
Description
Example
输入:password = "a"
输出:5
Leetcode-cn.com 2022-04-03
🟢 744.find-smallest-letter-greater-than-target
🏷️ Tags
#array #binary_search
Description
给你一个排序后的字符列表
在比较时,字母是依序循环出现的。举个例子:
如果目标字母
Example
🟢 744.find-smallest-letter-greater-than-target
🏷️ Tags
#array #binary_search
Description
给你一个排序后的字符列表
letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:
如果目标字母
target = 'z' 并且字符列表为 letters = ['a', 'b'],则答案返回 'a'Example
输入: letters = ["c", "f", "j"],target = "a"
输出: "c"
Leetcode-cn.com 2022-04-04
🟡 307.range-sum-query-mutable
🏷️ Tags
#design #binary_indexed_tree #segment_tree #array
Description
给你一个数组
其中一类查询要求 更新 数组
另一类查询要求返回数组
实现
Example
🟡 307.range-sum-query-mutable
🏷️ Tags
#design #binary_indexed_tree #segment_tree #array
Description
给你一个数组
nums ,请你完成两类查询。其中一类查询要求 更新 数组
nums 下标对应的值另一类查询要求返回数组
nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left <= right实现
NumArray 类:NumArray(int[] nums) 用整数数组 nums 初始化对象void update(int index, int val) 将 nums[index] 的值 更新 为 valint sumRange(int left, int right) 返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 (即,nums[left] + nums[left + 1], ..., nums[right])Example
输入:
["NumArray", "sumRange", "update", "sumRange"]
[[[1, 3, 5]], [0, 2], [1, 2], [0, 2]]
输出:
[null, 9, null, 8]
解释:
NumArray numArray = new NumArray([1, 3, 5]);
numArray.sumRange(0, 2); // 返回 1 + 3 + 5 = 9
numArray.update(1, 2); // nums = [1,2,5]
numArray.sumRange(0, 2); // 返回 1 + 2 + 5 = 8
Leetcode-cn.com 2022-04-05
🟢 762.prime-number-of-set-bits-in-binary-representation
🏷️ Tags
#bit_manipulation #math
Description
给你两个整数
计算置位位数 就是二进制表示中
例如,
Example
🟢 762.prime-number-of-set-bits-in-binary-representation
🏷️ Tags
#bit_manipulation #math
Description
给你两个整数
left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数。计算置位位数 就是二进制表示中
1 的个数。例如,
21 的二进制表示 10101 有 3 个计算置位。Example
输入:left = 6, right = 10
输出:4
解释:
6 -> 110 (2 个计算置位,2 是质数)
7 -> 111 (3 个计算置位,3 是质数)
9 -> 1001 (2 个计算置位,2 是质数)
10-> 1010 (2 个计算置位,2 是质数)
共计 4 个计算置位为质数的数字。
Leetcode-cn.com 2022-04-06
🟡 310.minimum-height-trees
🏷️ Tags
#depth_first_search #breadth_first_search #graph #topological_sort
Description
树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。
给你一棵包含
可选择树中任何一个节点作为根。当选择节点
请你找到所有的 最小高度树 并按 任意顺序 返回它们的根节点标签列表。
树的 高度 是指根节点和叶子节点之间最长向下路径上边的数量。
Example
🟡 310.minimum-height-trees
🏷️ Tags
#depth_first_search #breadth_first_search #graph #topological_sort
Description
树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。
给你一棵包含
n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点
x 作为根节点时,设结果树的高度为 h 。在所有可能的树中,具有最小高度的树(即,min(h))被称为 最小高度树 。请你找到所有的 最小高度树 并按 任意顺序 返回它们的根节点标签列表。
树的 高度 是指根节点和叶子节点之间最长向下路径上边的数量。
Example
输入:n = 4, edges = [[1,0],[1,2],[1,3]]
输出:[1]
解释:如图所示,当根是标签为 1 的节点时,树的高度是 1 ,这是唯一的最小高度树。
Leetcode-cn.com 2022-04-07
🟢 796.rotate-string
🏷️ Tags
#string #string_matching
Description
给定两个字符串,
例如, 若
Example
🟢 796.rotate-string
🏷️ Tags
#string #string_matching
Description
给定两个字符串,
s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 例如, 若
s = 'abcde',在旋转一次之后结果就是'bcdea' 。Example
输入: s = "abcde", goal = "cdeab"
输出: true
Leetcode-cn.com 2022-04-08
🟡 429.n-ary-tree-level-order-traversal
🏷️ Tags
#tree #breadth_first_search
Description
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见Example
🟡 429.n-ary-tree-level-order-traversal
🏷️ Tags
#tree #breadth_first_search
Description
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见Example
输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
Leetcode-cn.com 2022-04-09
🔴 780.reaching-points
🏷️ Tags
#math
Description
给定四个整数
从点
Example
🔴 780.reaching-points
🏷️ Tags
#math
Description
给定四个整数
sx , sy ,tx 和 ty,如果通过一系列的转换可以从起点 (sx, sy) 到达终点 (tx, ty),则返回 true,否则返回 false。从点
(x, y) 可以转换到 (x, x+y) 或者 (x+y, y)。Example
输入: sx = 1, sy = 1, tx = 3, ty = 5
输出: true
解释:
可以通过以下一系列转换从起点转换到终点:
(1, 1) -> (1, 2)
(1, 2) -> (3, 2)
(3, 2) -> (3, 5)
Leetcode-cn.com 2022-04-10
🟢 804.unique-morse-code-words
🏷️ Tags
#array #hash_table #string
Description
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:
为了方便,所有
给你一个字符串数组
例如,
对
Example
🟢 804.unique-morse-code-words
🏷️ Tags
#array #hash_table #string
Description
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:
'a' 对应 ".-" ,'b' 对应 "-..." ,'c' 对应 "-.-." ,以此类推。为了方便,所有
26 个英文字母的摩尔斯密码表如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
给你一个字符串数组
words ,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,
"cab" 可以写成 "-.-..--..." ,(即 "-.-." + ".-" + "-..." 字符串的结合)。我们将这样一个连接过程称作 单词翻译 。对
words 中所有单词进行单词翻译,返回不同 单词翻译 的数量。Example
输入: words = ["gin", "zen", "gig", "msg"]
输出: 2
解释:
各单词翻译如下:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
共有 2 种不同翻译, "--...-." 和 "--...--.".
Leetcode-cn.com 2022-04-14
🟢 1672.richest-customer-wealth
🏷️ Tags
#array #matrix
Description
给你一个
客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
Example
🟢 1672.richest-customer-wealth
🏷️ Tags
#array #matrix
Description
给你一个
m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
Example
输入:accounts = [[1,2,3],[3,2,1]]
输出:6
解释:
第 1 位客户的资产总量 = 1 + 2 + 3 = 6
第 2 位客户的资产总量 = 3 + 2 + 1 = 6
两位客户都是最富有的,资产总量都是 6 ,所以返回 6 。
Leetcode-cn.com 2022-04-15
🟡 385.mini-parser
🏷️ Tags
#stack #depth_first_search #string
Description
给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果
列表中的每个元素只可能是整数或整数嵌套列表
Example
🟡 385.mini-parser
🏷️ Tags
#stack #depth_first_search #string
Description
给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果
NestedInteger 。列表中的每个元素只可能是整数或整数嵌套列表
Example
输入:s = "324",
输出:324
解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 324。
Leetcode-cn.com 2022-04-16
🔴 479.largest-palindrome-product
🏷️ Tags
#math
Description
给定一个整数 n ,返回 可表示为两个
Example
🔴 479.largest-palindrome-product
🏷️ Tags
#math
Description
给定一个整数 n ,返回 可表示为两个
n 位整数乘积的 最大回文整数 。因为答案可能非常大,所以返回它对 1337 取余 。Example
输入: n = 1
输出: 9
Leetcode-cn.com 2022-04-17
🟢 819.most-common-word
🏷️ Tags
#hash_table #string #counting
Description
给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。
题目保证至少有一个词不在禁用列表中,而且答案唯一。
禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。
Example
🟢 819.most-common-word
🏷️ Tags
#hash_table #string #counting
Description
给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。
题目保证至少有一个词不在禁用列表中,而且答案唯一。
禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。
Example
输入:
paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."
banned = ["hit"]
输出: "ball"
解释:
"hit" 出现了3次,但它是一个禁用的单词。
"ball" 出现了2次 (同时没有其他单词出现2次),所以它是段落里出现次数最多的,且不在禁用列表中的单词。
注意,所有这些单词在段落里不区分大小写,标点符号需要忽略(即使是紧挨着单词也忽略, 比如 "ball,"),
"hit"不是最终的答案,虽然它出现次数更多,但它在禁用单词列表中。
Leetcode-cn.com 2022-04-18
🟡 386.lexicographical-numbers
🏷️ Tags
#depth_first_search #trie
Description
给你一个整数
你必须设计一个时间复杂度为
Example
🟡 386.lexicographical-numbers
🏷️ Tags
#depth_first_search #trie
Description
给你一个整数
n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为
O(n) 且使用 O(1) 额外空间的算法。Example
输入:n = 13
输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]
Leetcode-cn.com 2022-04-19
🟢 821.shortest-distance-to-a-character
🏷️ Tags
#array #two_pointers #string
Description
给你一个字符串
返回一个整数数组
两个下标
Example
🟢 821.shortest-distance-to-a-character
🏷️ Tags
#array #two_pointers #string
Description
给你一个字符串
s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组
answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标
i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。Example
输入:s = "loveleetcode", c = "e"
输出:[3,2,1,0,1,0,0,1,2,2,1,0]
解释:字符 'e' 出现在下标 3、5、6 和 11 处(下标从 0 开始计数)。
距下标 0 最近的 'e' 出现在下标 3 ,所以距离为 abs(0 - 3) = 3 。
距下标 1 最近的 'e' 出现在下标 3 ,所以距离为 abs(1 - 3) = 2 。
对于下标 4 ,出现在下标 3 和下标 5 处的 'e' 都离它最近,但距离是一样的 abs(4 - 3) == abs(4 - 5) = 1 。
距下标 8 最近的 'e' 出现在下标 6 ,所以距离为 abs(8 - 6) = 2 。
Leetcode-cn.com 2022-04-20
🟡 388.longest-absolute-file-path
🏷️ Tags
#stack #depth_first_search #string
Description
假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个Example
🟡 388.longest-absolute-file-path
🏷️ Tags
#stack #depth_first_search #string
Description
假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个Example
输入:input = "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"
输出:20
解释:只有一个文件,绝对路径为 "dir/subdir2/file.ext" ,路径长度 20