友链朋友圈

力扣2276. 统计区间中的整数数目

力扣周赛293--第四题 2276. 统计区间中的整数数目 题目 给你区间的 空 集,请你设计并实现满足要求的数据结构: 新增:添加一个区间到这个区间集合中。 统计:计算出现在 至少一个 区间中的整数个数。 实现 CountIntervals 类: CountIntervals() 使用区间的空集初始化对象 void add(int left, int right) 添加区间 [left, right] 到区间集合之中。 int count() 返回出现在 至少一个 区间中的整数个数。 注意:区间 [left, right] 表示满足 left <= x <= right 的所有整数 x 。 示例 1: 输入["CountIntervals", "add", "add", "count", "add", "count"][[], [2, 3], [7, 10], [], [5, 8], []]输出[null, null, null, 6, null, 8]解释CountIntervals countIntervals = new CountIntervals(); // 用一个区间空集初始化对象countIntervals.add(2, 3); // 将 [2, 3] 添加到区间集合中countIntervals.add(7, 10); // 将 [7, 10] 添加到区间集合中countIntervals.count(); // 返回 6 // 整数 2 和 3 出现在区间 [2, 3] 中 // 整数 7、8、9、10 出现在区间 [7, 10] 中countIntervals.add(5, 8); // 将 [5, 8] 添加到区间集合中countInte...

avatar 龙儿之家 发表于 2022年05月19日 13:54:33

力扣2275. 按位与结果大于零的最长组合

力扣周赛293--第三题 2275. 按位与结果大于零的最长组合 题目 对数组 nums 执行 按位与 相当于对数组 nums 中的所有整数执行 按位与 。 例如,对 nums = [1, 5, 3] 来说,按位与等于 1 & 5 & 3 = 1 。 同样,对 nums = [7] 而言,按位与等于 7 。 给你一个正整数数组 candidates 。计算 candidates 中的数字每种组合下 按位与 的结果。 candidates 中的每个数字在每种组合中只能使用 一次 。 返回按位与结果大于 0 的 最长 组合的长度。 示例 1: 输入:candidates = [16,17,71,62,12,24,14]输出:4解释:组合 [16,17,62,24] 的按位与结果是 16 & 17 & 62 & 24 = 16 > 0 。组合长度是 4 。可以证明不存在按位与结果大于 0 且长度大于 4 的组合。注意,符合长度最大的组合可能不止一种。例如,组合 [62,12,24,14] 的按位与结果是 62 & 12 & 24 & 14 = 8 > 0 。 示例 2: 输入:candidates = [8,8]输出:2解释:最长组合是 [8,8] ,按位与结果 8 & 8 = 8 > 0 。组合长度是 2 ,所以返回 2 。 提示: 1 <= candidates.length <= 105 1 <= candidates[i] <= 107 Related Topics 位运算 数组 哈希表 计数 思路 这题需要找出按位与结果大于0的最长组合的长度,按位与结果大于0, 说明这个数组中的每一个二进制数都有相同的一位是1,根据这题给的数组值的范围, 可以确定最多有24位,那么我们可以循环24次数组,每一次循环统计出第i位位数为1的个数, 然后将每一次的个数做比较,得出最长组合的长...

avatar 龙儿之家 发表于 2022年05月19日 13:41:13

力扣2274. 不含特殊楼层的最大连续楼层数

力扣周赛293--第二题 2274. 不含特殊楼层的最大连续楼层数 题目 Alice 管理着一家公司,并租用大楼的部分楼层作为办公空间。Alice 决定将一些楼层作为 特殊楼层 ,仅用于放松。 给你两个整数 bottom 和 top ,表示 Alice 租用了从 bottom 到 top(含 bottom 和 top 在内)的所有楼层。另给你一个整数数组 special ,其中 special[i] 表示 Alice 指定用于放松的特殊楼层。 返回不含特殊楼层的 最大 连续楼层数。 示例 1: 输入:bottom = 2, top = 9, special = [4,6]输出:3解释:下面列出的是不含特殊楼层的连续楼层范围:- (2, 3) ,楼层数为 2 。- (5, 5) ,楼层数为 1 。- (7, 9) ,楼层数为 3 。因此,返回最大连续楼层数 3 。 示例 2: 输入:bottom = 6, top = 8, special = [7,6,8]输出:0解释:每层楼都被规划为特殊楼层,所以返回 0 。 提示 1 <= special.length <= 105 1 <= bottom <= special[i] <= top <= 109 special 中的所有值 互不相同 Related Topics 数组 排序 思路 这题相当于在bottom到top的范围内,被special的数分割了,我们需要找到分割后最长的一段 步骤: 为了保证数据的顺序进行,对special进行排序 遍历special对bottom~top进行分割,当bottom<=special[i]时, 连续楼层数为special[i]-bottom,与之前的最大连续层数对比,得到当前的最大连续层数, 同时更新bottom = special[i] + 1 遍历完,还有最后一段的连续层数top -...

avatar 龙儿之家 发表于 2022年05月19日 09:57:58

力扣2273. 移除字母异位词后的结果数组

力扣周赛293--第一题 2273. 移除字母异位词后的结果数组 题目 给你一个下标从 0 开始的字符串 words ,其中 words[i] 由小写英文字符组成。 在一步操作中,需要选出任一下标 i ,从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件: 0 < i < words.length words[i - 1] 和 words[i] 是 字母异位词 。 只要可以选出满足条件的下标,就一直执行这个操作。 在执行所有操作后,返回 words 。可以证明,按任意顺序为每步操作选择下标都会得到相同的结果。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。例如,"dacb" 是 "abdc" 的一个字母异位词。 示例 1: 输入:words = ["abba","baba","bbaa","cd","cd"] 输出:["abba","cd"] 解释: 获取结果数组的方法之一是执行下述步骤: - 由于 words[2] = "bbaa" 和 words[1] = "baba" 是字母异位词,选择下标 2 并删除 words[2] 。 现在 words = ["abba","baba","cd","cd"] 。 - 由于 words[1] = "baba" 和 words[0] = "abba" 是字母异位词,选择下标 1 并删除 words[1] 。 现在 words = ["abba","cd","cd"] 。 - 由于 words[2] = "cd" 和 words[1] = "cd" 是字母异位词,选择下标 2 并删除 words[2] 。 现在 words = ["abba","cd"] 。 无法再执行任何操作,所以 ["abba","cd"] 是最终答案。 ...

avatar 龙儿之家 发表于 2022年05月19日 09:27:33

ECharts 水球图


avatar Eurkon 发表于 2022年05月16日 09:00:00

ECharts 词云图


avatar Eurkon 发表于 2022年05月13日 09:00:00

力扣周赛292题解

第一题 力扣原题链接: 2264. 字符串中最大的 3 位相同数字 单个题解: 力扣2264. 字符串中最大的 3 位相同数字 题解: 这题是要找最大的3个相同数并且3个数是相连的,因为数字的话只有0~9这10个数字,找最大的,那我就从999开始,然后依次888、777。。。000,只要字符串中存在,那就是它了。 java代码: public String largestGoodInteger(String num) { String str; for (int i = 9; i >= 0; i--) { str = "" + i + i + i; if (num.contains(str)) { return str; } } return "";} 第二题 力扣原题链接: 6057. 统计值等于子树平均值的节点数 单个题解: 力扣6057. 统计值等于子树平均值的节点数 题解: 这题的思路: 先深度遍历树,统计出每个节点包含的节点数,并将其放入队列中 再深度遍历一次树,这次计算出每个节点的元素和,并从队列中取到该节点的节点数,然后求平均值做判断 java代码: class Solution { public int averageOfSubtree(TreeNode root) { counts(root); sums(root); return count; } Queue<Integer> queue = new LinkedList<>(); int count = 0; private int counts(TreeNode root) { if (root == null) { ...

avatar 龙儿之家 发表于 2022年05月10日 14:01:37

力扣2267. 检查是否有合法括号字符串路径

力扣周赛292--第四题 2267. 检查是否有合法括号字符串路径 题目 一个括号字符串是一个 非空 且只包含 '(' 和 ')' 的字符串。如果下面 任意 条件为 真 ,那么这个括号字符串就是 合法的 。 字符串是 () 。 字符串可以表示为 AB(A 连接 B),A 和 B 都是合法括号序列。 字符串可以表示为 (A) ,其中 A 是合法括号序列。 给你一个 m x n 的括号网格图矩阵 grid 。网格图中一个 合法括号路径 是满足以下所有条件的一条路径: 路径开始于左上角格子 (0, 0) 。 路径结束于右下角格子 (m - 1, n - 1) 。 路径每次只会向 下 或者向 右 移动。 路径经过的格子组成的括号字符串是 合法 的。 如果网格图中存在一条 合法括号路径 ,请返回 true ,否则返回 false 。 示例 1: 输入:grid = [["(","(","("],[")","(",")"],["(","(",")"],["(","(",")"]] 输出:true 解释:上图展示了两条路径,它们都是合法括号字符串路径。 第一条路径得到的合法字符串是 "()(())" 。 第二条路径得到的合法字符串是 "((()))" 。 注意可能有其他的合法括号字符串路径。 示例 2: 输入:grid = [[")",")"],["(","("]] 输出:false 解释:两条可行路径分别得到 "))(" 和 ")((" 。由于它们都不是合法括号字符串,我们返回 false 。 提示: m == grid.length n == grid[i].length 1 <= m, n <= 100 grid[i][j] 要么是 '(' ,要么是 ')' 。 思路 从左上角到右下角,依次路过,下一个坐标一定是该坐标的右侧或者下侧的坐标,同时玩吗记录下路...

avatar 龙儿之家 发表于 2022年05月10日 10:50:21

力扣2266. 统计打字方案数

力扣周赛292--第三题 2266. 统计打字方案数 题目 Alice 在给 Bob 用手机打字。数字到字母的 对应 如下图所示。 为了 打出 一个字母,Alice 需要 按 对应字母 i 次,i 是该字母在这个按键上所处的位置。 比方说,为了按出字母 's' ,Alice 需要按 '7' 四次。类似的, Alice 需要按 '5' 两次得到字母 'k' 。 注意,数字 '0' 和 '1' 不映射到任何字母,所以 Alice 不 使用它们。 但是,由于传输的错误,Bob 没有收到 Alice 打字的字母信息,反而收到了 按键的字符串信息 。 比方说,Alice 发出的信息为 "bob" ,Bob 将收到字符串 "2266622" 。 给你一个字符串 pressedKeys ,表示 Bob 收到的字符串,请你返回 Alice 总共可能发出多少种文字信息 。 由于答案可能很大,将它对 109 + 7 取余 后返回。 示例 1: 输入:pressedKeys = "22233" 输出:8 解释: Alice 可能发出的文字信息包括: "aaadd", "abdd", "badd", "cdd", "aaae", "abe", "bae" 和 "ce" 。 由于总共有 8 种可能的信息,所以我们返回 8 。 示例 2: 输入:pressedKeys = "222222222222222222222222222222222222" 输出:82876089 解释: 总共有 2082876103 种 Alice 可能发出的文字信息。 由于我们需要将答案对 109 + 7 取余,所以我们返回 2082876103 % (109 + 7) = 82876089 。 提示: 1 <= pressedKeys.length <= 105 pressedKeys 只包含数字 ...

avatar 龙儿之家 发表于 2022年05月10日 09:32:53

ECharts 流域图


avatar Eurkon 发表于 2022年05月10日 09:00:00