3005-最大频率元素计数
3005-最大频率元素计数最大频率元素计数 题目描述 给你一个由 正整数 组成的数组 nums 。 返回数组 nums 中所有具有 最大 频率的元素的 总频率 。 元素的 频率 是指该元素在数组中出现的次数。 示例 1: 输入:nums = [1,2,2,3,1,4]输出:4解释:元素 1 和 2 的频率为 2 ,是数组中的最大频率。因此具有最大频率的元素在数组中的数量是 4 。 示例 2: 输入:nums = [1,2,3,4,5]输出:5解释:数组中的所有元素的频率都为 1 ,是最大频率。因此具有最大频率的元素在数组中的数量是 5 。 提示: 1 <= nums.length <= 100 1 <= nums[i] <= 100 解题思路 太简单了 1234567891011121314151617181920212223import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class LeetCode3...
3408-设计任务管理器
3408-设计任务管理器题目描述 一个任务管理器系统可以让用户管理他们的任务,每个任务有一个优先级。这个系统需要高效地处理添加、修改、执行和删除任务的操作。 请你设计一个 TaskManager 类: TaskManager(vector<vector<int>>& tasks) 初始化任务管理器,初始化的数组格式为 [userId, taskId, priority] ,表示给 userId 添加一个优先级为 priority 的任务 taskId 。 void add(int userId, int taskId, int priority) 表示给用户 userId 添加一个优先级为 priority 的任务 taskId ,输入 保证 taskId 不在系统中。 void edit(int taskId, int newPriority) 更新已经存在的任务 taskId 的优先级为 newPriority 。输入 保证 taskId 存在于系统中。 void rmv(int taskId) 从系统中删除任务 taskId 。输入 保证 ...
2349-设计数字容器系统
2349-设计数字容器系统题目描述 设计一个数字容器系统,可以实现以下功能: 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中给定数字的最小下标。 请你实现一个 NumberContainers 类: NumberContainers() 初始化数字容器系统。 void change(int index, int number) 在下标 index 处填入 number 。如果该下标 index 处已经有数字了,那么用 number 替换该数字。 int find(int number) 返回给定数字 number 在系统中的最小下标。如果系统中没有 number ,那么返回 -1 。 示例: 输入:["NumberContainers", "find", "change", "change", "change", "change", "find", "change", "find&quo...
2197-替换数组中的非互质数
2197-替换数组中的非互质数题目描述 给你一个整数数组 nums 。请你对数组执行下述操作: 从 nums 中找出 任意 两个 相邻 的 非互质 数。 如果不存在这样的数,终止 这一过程。 否则,删除这两个数,并 替换 为它们的 最小公倍数(Least Common Multiple,LCM)。 只要还能找出两个相邻的非互质数就继续 重复 这一过程。 返回修改后得到的 最终 数组。可以证明的是,以 任意 顺序替换相邻的非互质数都可以得到相同的结果。 生成的测试用例可以保证最终数组中的值 小于或者等于 108 。 两个数字 x 和 y 满足 非互质数 的条件是:GCD(x, y) > 1 ,其中 GCD(x, y) 是 x 和 y 的 最大公约数 。 示例 1 : 输入:nums = [6,4,3,2,7,6,2]输出:[12,7,6]解释: (6, 4) 是一组非互质数,且 LCM(6, 4) = 12 。得到 nums = [12,3,2,7,6,2] 。 (12, 3) 是一组非互质数,且 LCM(12, 3) = 12 。得到 nums = [12,2,7...
1935-可以输入的最大单词数
1935-可以输入的最大单词数题目描述 键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。 给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串 brokenLetters ,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入的 text 中单词的数目。 示例 1: 输入:text = "hello world", brokenLetters = "ad"输出:1解释:无法输入 "world" ,因为字母键 'd' 已损坏。 示例 2: 输入:text = "leet code", brokenLetters = "lt"输出:1解释:无法输入 "leet" ,因为字母键 'l' 和 't' 已损坏。 示例 3: 输入:text = "leet code", brokenLetters = "...
2327-知道秘密的人数
2327-知道秘密的人数题目描述 在第 1 天,有一个人发现了一个秘密。 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后,每天 给一个新的人 分享 秘密。同时给你一个整数 forget ,表示每个人在发现秘密 forget 天之后会 忘记 这个秘密。一个人 不能 在忘记秘密那一天及之后的日子里分享秘密。 给你一个整数 n ,请你返回在第 n 天结束时,知道秘密的人数。由于答案可能会很大,请你将结果对 109 + 7 取余 后返回。 示例 1: 输入:n = 6, delay = 2, forget = 4输出:5解释:第 1 天:假设第一个人叫 A 。(一个人知道秘密)第 2 天:A 是唯一一个知道秘密的人。(一个人知道秘密)第 3 天:A 把秘密分享给 B 。(两个人知道秘密)第 4 天:A 把秘密分享给一个新的人 C 。(三个人知道秘密)第 5 天:A 忘记了秘密,B 把秘密分享给一个新的人 D 。(三个人知道秘密)第 6 天:B 把秘密分享给 E,C 把秘密分享给 F 。(五个人知道秘密) 示例 2: 输入:n = 4, delay = 1...
1317-将整数转换为两个无零整数的和
1317-将整数转换为两个无零整数的和题目描述 「无零整数」是十进制表示中 不含任何 0 的正整数。 给你一个整数 n,请你返回一个 由两个整数组成的列表 [a, b],满足: a 和 b 都是无零整数 a + b = n 题目数据保证至少有一个有效的解决方案。 如果存在多个有效解决方案,你可以返回其中任意一个。 示例 1: 输入:n = 2输出:[1,1]解释:a = 1, b = 1。a + b = n 并且 a 和 b 的十进制表示形式都不包含任何 0。 示例 2: 输入:n = 11输出:[2,9] 示例 3: 输入:n = 10000输出:[1,9999] 示例 4: 输入:n = 69输出:[1,68] 示例 5: 输入:n = 1010输出:[11,999] 提示: 2 <= n <= 104 题解 由于题目中给出的 n 的范围 [2,10000] 较小,因此我们可以直接在 [1,n) 的范围内枚举 A,并通过 n−A 得到 B,再判断 A 和 B 是否均不包含 0 即可。 123456789101112131415161...
3516-找到最近的人
3516-找到最近的人题目描述 给你三个整数 x、y 和 z,表示数轴上三个人的位置: x 是第 1 个人的位置。 y 是第 2 个人的位置。 z 是第 3 个人的位置,第 3 个人 不会移动 。 第 1 个人和第 2 个人以 相同 的速度向第 3 个人移动。 判断谁会 先 到达第 3 个人的位置: 如果第 1 个人先到达,返回 1 。 如果第 2 个人先到达,返回 2 。 如果两个人同时到达,返回 0 。 根据上述规则返回结果。 示例 1: 输入: x = 2, y = 7, z = 4 输出: 1 解释: 第 1 个人在位置 2,到达第 3 个人(位置 4)需要 2 步。 第 2 个人在位置 7,到达第 3 个人需要 3 步。 由于第 1 个人先到达,所以输出为 1。 示例 2: 输入: x = 2, y = 5, z = 6 输出: 2 解释: 第 1 个人在位置 2,到达第 3 个人(位置 6)需要 4 步。 第 2 个人在位置 5,到达第 3 个人需要 1 步。 由于第 2 个人先到达,...
3025-人员站位的方案数
3025-人员站位的方案数题目描述 给你一个 n x 2 的二维数组 points ,它表示二维平面上的一些点坐标,其中 points[i] = [xi, yi] 。 计算点对 (A, B) 的数量,其中 A 在 B 的左上角,并且 它们形成的长方形中(或直线上)没有其它点(包括边界)。 返回数量。 示例 1: 输入:points = [[1,1],[2,2],[3,3]] 输出:0 解释: 没有办法选择 A 和 B,使得 A 在 B 的左上角。 示例 2: 输入:points = [[6,2],[4,4],[2,6]] 输出:2 解释: 左边的是点对 (points[1], points[0]),其中 points[1] 在 points[0] 的左上角,并且形成的长方形内部是空的。 中间的是点对 (points[2], points[1]),和左边的一样是合法的点对。 右边的是点对 (points[2], points[0]),其中 points[2] 在 points[0] 的左上角,但 points[1] 在长方形内部,所以不是一个合法的点对。 示例...
1792-最大平均通过率
1792-最大平均通过率题目描述 一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] = [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学生可以通过考试。 给你一个整数 extraStudents ,表示额外有 extraStudents 个聪明的学生,他们 一定 能通过任何班级的期末考。你需要给这 extraStudents 个学生每人都安排一个班级,使得 所有 班级的 平均 通过率 最大 。 一个班级的 通过率 等于这个班级通过考试的学生人数除以这个班级的总人数。平均通过率 是所有班级的通过率之和除以班级数目。 请你返回在安排这 extraStudents 个学生去对应班级后的 最大 平均通过率。与标准答案误差范围在 10-5 以内的结果都会视为正确结果。 示例 1: 输入:classes = [[1,2],[3,5],[2,2]], extraStudents = 2输出:0.78333解释:你可以将额外的两个学生...
