Leetcode
Duck_Duck_
Hi~ o(* ̄▽ ̄*)ブ
展开
-
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 ...原创 2022-04-14 09:41:20 · 284 阅读 · 0 评论 -
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 09:41:52 · 284 阅读 · 0 评论 -
806. 写字符串需要的行数
难度:简单我们要把给定的字符串S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你的答案作为长度为2的整数列表返回。示...原创 2022-04-12 09:54:35 · 310 阅读 · 0 评论 -
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代码:class Solution { public int coun...原创 2022-04-11 11:26:13 · 237 阅读 · 0 评论 -
804. 唯一摩尔斯密码词
难度:简单国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:'a'对应".-", 'b'对应"-...", 'c'对应"-.-.",以此类推。为了方便,所有26个英文字母的摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","......原创 2022-04-10 00:53:26 · 181 阅读 · 0 评论 -
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,nul...原创 2022-04-08 09:44:09 · 127 阅读 · 0 评论 -
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 ...原创 2022-04-06 10:10:10 · 159 阅读 · 0 评论 -
744. 寻找比目标字母大的最小字母
难度:简单给你一个排序后的字符列表letters,列表中只包含小写英文字母。另给出一个目标字母target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母target = 'z'并且字符列表为letters = ['a', 'b'],则答案返回'a'示例 1:输入: letters = ["c", "f", "j"],target = "a"输出: "c"示例 2:输入: letters = [...原创 2022-04-06 09:27:59 · 121 阅读 · 0 评论 -
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...原创 2022-04-02 09:22:26 · 176 阅读 · 0 评论 -
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]示例...原创 2022-03-31 10:44:55 · 284 阅读 · 0 评论 -
1004. 最大连续1的个数 III
难度:中等给定一个二进制数组nums和一个整数k,如果可以翻转最多k个0,则返回数组中连续1的最大个数。示例 1:输入:nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释:[...原创 2022-03-30 15:03:53 · 251 阅读 · 0 评论 -
2024. 考试的最大困扰度
难度:中等一位老师正在出一场由n道判断题构成的考试,每道题的答案为 true (用'T'表示)或者 false (用'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串answerKey,其中answerKey[i]是第i个问题的正确结果。除此以外,还给你一个整数k,表示你能进行以下操作的最多次数:每次操作中,将问题的正确答案改为'T'或者'F...原创 2022-03-30 14:57:35 · 153 阅读 · 0 评论 -
432. 全 O(1) 的数据结构
难度:困难请你设计一个用于存储字符串计数的数据结构,并能够返回计数最小和最大的字符串。实现AllOne类:AllOne()初始化数据结构的对象。 inc(String key)字符串key的计数增加1。如果数据结构中尚不存在key,那么插入计数为1的key。 dec(String key)字符串key的计数减少1。如果key的计数在减少后为0,那么需要将这个key从数据结构中删除。测试用例保证:在减少计数前,key存在于数据结构中。...原创 2022-03-29 11:21:25 · 126 阅读 · 0 评论 -
2049. 统计最高分的节点数目
难度:中等给你一棵根节点为0的二叉树,它总共有n个节点,节点编号为0到n - 1。同时给你一个下标从0开始的整数数组parents表示这棵树,其中parents[i]是节点i的父节点。由于节点0是根,所以parents[0] == -1。一个子树的大小为这个子树内节点的数目。每个节点都有一个与之关联的分数。求出某个节点分数的方法是,将这个节点和与它相连的边全部删除,剩余部分是若干个非空子树,这个节点的分数为所有这些子树大小的乘积...原创 2022-03-29 10:14:10 · 345 阅读 · 0 评论 -
693. 交替位二进制数
难度:简单给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.提示:1 <= n <= - 1代码:class Solution {..原创 2022-03-28 09:51:22 · 129 阅读 · 0 评论 -
2038. 如果相邻两个颜色均相同则删除当前颜色
难度:中等总共有n个颜色片段排成一列,每个颜色片段要么是'A'要么是'B'。给你一个长度为n的字符串colors,其中colors[i]表示第i个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们轮流从这个字符串中删除颜色。Alice先手。如果一个颜色片段为'A'且相邻两个颜色都是颜色'A',那么 Alice 可以删除该颜色片段。Alice不可以删除任何颜色'B'片段。 如果一个颜色片段为'B'且相邻两个颜色都是颜色...原创 2022-03-22 15:12:59 · 86 阅读 · 0 评论 -
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].- <= Node.val <= root为二叉搜索树- ...原创 2022-03-21 10:41:33 · 316 阅读 · 0 评论 -
2044. 统计按位或能得到最大值的子集数目
难度:简单给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或,结果等于 a[0] OR a[1] OR ... OR a[a.length - 1](下标从 0 开始)。示例 1:输入:nums = [3,1]输出..原创 2022-03-15 11:18:11 · 196 阅读 · 0 评论 -
589. N 叉树的前序遍历
难度:简单给定一个 n叉树的根节点 root,返回其节点值的前序遍历。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值null分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,n...原创 2022-03-14 11:21:16 · 123 阅读 · 0 评论 -
590. N 叉树的后序遍历
难度:简单给定一个 n叉树的根节点root,返回其节点值的后序遍历。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值null分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[5,6,3,2,4,1]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,...原创 2022-03-14 11:07:53 · 102 阅读 · 0 评论 -
599. 两个列表的最小索引总和
难度:简单假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。示例 1:输入: list1 = ["Shogun", "Tapioca Express", "Burger King", "KFC"],list2 = ["Piatti", "The Grill at Torrey Pin...原创 2022-03-14 09:54:26 · 81 阅读 · 0 评论 -
504.七进制数
难度:简单给定一个整数num,将其转化为7 进制,并以字符串形式输出。示例 1:输入: num = 100输出: "202"示例 2:输入: num = -7输出: "-10"提示:-107<= num <= 107代码:class Solution { public String convertToBase7(int num) { if (num == 0){ retur...原创 2022-03-07 11:33:48 · 74 阅读 · 0 评论 -
506. 相对名次
难度:简单给你一个长度为n的整数数组score,其中score[i]是第i位运动员在比赛中的得分。所有得分都互不相同。运动员将根据得分决定名次,其中名次第1的运动员得分最高,名次第2的运动员得分第2高,依此类推。运动员的名次决定了他们的获奖情况:名次第1的运动员获金牌"Gold Medal"。 名次第2的运动员获银牌"Silver Medal"。 名次第3的运动员获铜牌"Bronze Medal"。 从名次第4到第n...原创 2021-12-02 17:07:12 · 85 阅读 · 0 评论 -
1446. 连续字符
难度:简单给你一个字符串s,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。请你返回字符串的能量。示例 1:输入:s = "leetcode"输出:2解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。示例 2:输入:s = "abbcccddddeeeeedcba"输出:5解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。示例 3:输入:s = "triplepillooooow"输出:5示例 4:输入:s ...原创 2021-12-01 13:52:12 · 293 阅读 · 0 评论 -
275. H 指数 II
难度:中等给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的h指数。h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少h 次。(其余的N - h篇论文每篇被引用次数不多于h次。)"示例:输入:citations = [0,1,3,5,6]输出: 3 解释: 给定数组表示研究者总共有...原创 2021-07-12 09:55:36 · 106 阅读 · 0 评论 -
274. H 指数
难度:中等给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的h指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少h 次。且其余的N - h篇论文每篇被引用次数不超过h次。例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。示例:输入:citations =...原创 2021-07-12 09:52:18 · 185 阅读 · 0 评论 -
面试题 17.10. 主要元素
难度:简单数组中占比超过一半的元素称之为主要元素。给你一个整数数组,找出其中的主要元素。若没有,返回-1。请设计时间复杂度为O(N)、空间复杂度为O(1)的解决方案。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2分析:时间和空间的限制,用摩尔投票算法可以解决 。摩尔投票代码:class Solution { p...原创 2021-07-09 09:44:23 · 72 阅读 · 0 评论 -
1711. 大餐计数
难度:中等大餐是指恰好包含两道不同餐品的一餐,其美味程度之和等于 2 的幂。你可以搭配任意两道餐品做一顿大餐。给你一个整数数组deliciousness,其中deliciousness[i]是第i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同大餐的数量。结果需要对109+ 7取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输...原创 2021-07-08 16:01:52 · 110 阅读 · 0 评论 -
1418. 点菜展示表
难度:中等给你一个数组orders,表示客户在餐厅中完成的订单,确切地说,orders[i]=[customerNamei,tableNumberi,foodItemi],其中customerNamei是客户的姓名,tableNumberi是客户所在餐桌的桌号,而foodItemi是客户点的餐品名称。请你返回该餐厅的点菜展示表。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐...原创 2021-07-08 10:06:41 · 117 阅读 · 0 评论 -
278. 第一个错误的版本
难度:简单你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有n个版本[1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号version是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:...原创 2021-07-05 15:44:24 · 74 阅读 · 0 评论 -
704. 二分查找
难度:简单给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例 1:输入:nums= [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入:nums = [-1,0,3,5,9,12], target= 2输出: -1解释: 2 不存在 nums中因此返回 -1提示:你...原创 2021-07-05 15:35:31 · 66 阅读 · 0 评论 -
726. 原子的数量
难度:困难给定一个化学式formula(作为字符串),返回每种原子的数量。原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2 这个表达是不可行的。两个化学式连在一起是新的化学式。例如H2O2He3Mg4 也是化学式。一个括号中的化学式和数字(可选择性添加)也是化学式。例如 (H2O2) 和 (H2O2)3 是化学式。给定一个化..原创 2021-07-05 15:15:13 · 198 阅读 · 0 评论 -
451. 根据字符出现频率排序
难度:中等给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例 3:输入.原创 2021-07-05 11:12:08 · 116 阅读 · 0 评论 -
645. 错误的集合
难度:简单集合s包含从1到n的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复。给定一个数组nums代表了集合S发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4]输出:[2,3]示例 2:输入:nums = [1,1]输出:[1,2]提示:2 <= num...原创 2021-07-05 10:22:52 · 79 阅读 · 0 评论 -
55. 跳跃游戏
难度:中等给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 ...原创 2021-07-02 16:55:31 · 103 阅读 · 0 评论 -
1833. 雪糕的最大数量
难度:中等夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。商店中新到n支雪糕,用长度为n的数组costs表示雪糕的定价,其中costs[i]表示第i支雪糕的现金价格。Tony 一共有coins现金可以用于消费,他想要买尽可能多的雪糕。给你价格数组costs和现金量coins,请你计算并返回 Tony 用coins现金能够买到的雪糕的最大数量。注意:Tony 可以按任意顺序购买雪糕。示例 1:输入:costs = [1,3,2,4,1],...原创 2021-07-02 11:39:39 · 99 阅读 · 0 评论 -
29. 两数相除
难度:中等给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8以及truncate(-2.7335) = -2示例1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333.....原创 2021-07-02 11:35:36 · 139 阅读 · 0 评论 -
22. 括号生成
难度:中等数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8代码(回溯法):class Solution { public List<String> generateParent...原创 2021-07-01 17:28:02 · 71 阅读 · 0 评论 -
16. 最接近的三数之和
难度:中等给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3 -10^3<= nums[i]<=...原创 2021-07-01 16:52:27 · 134 阅读 · 0 评论 -
1114. 按序打印
难度:简单我们提供了一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个Foo实例。一个将会调用first()方法 一个将会调用second()方法 还有一个将会调用third()...原创 2021-07-01 11:22:31 · 93 阅读 · 0 评论