集合
惠菁
我见过大海,看过繁星,但唯独遇见你,是我长久以来,所有奔赴的意义。
展开
-
【java|golang】多字段排序以及排序规则
给你两个字符串数组 positive_feedback 和 negative_feedback ,分别包含表示正面的和负面的词汇。不会 有单词同时是正面的和负面的。一开始,每位学生分数为 0 。每个正面的单词会给学生的分数 加 3 分,每个负面的词会给学生的分数 减 1 分。给你 n 个学生的评语,用一个下标从 0 开始的字符串数组 report 和一个下标从 0 开始的整数数组 student_id 表示,其中 student_id[i] 表示这名学生的 ID ,这名学生的评语是 report[原创 2023-10-11 11:15:38 · 522 阅读 · 1 评论 -
【java】2208. 将数组和减半的最少操作次数
给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作)请你返回将 nums 数组和 至少 减少一半的 最少 操作数。原创 2023-07-25 20:00:00 · 328 阅读 · 0 评论 -
【Java|golang】2367. 算术三元组的数目---判断等差数列时间复杂度O(N)
给你一个下标从 0 开始、严格递增 的整数数组 nums 和一个正整数 diff 。如果满足下述全部条件,则三元组 (i, j, k) 就是一个 算术三元组 :i < j < k ,nums[j] - nums[i] == diff 且nums[k] - nums[j] == diff返回不同 算术三元组 的数目。原创 2023-03-31 10:11:05 · 317 阅读 · 0 评论 -
【Java|golang】1604. 警告一小时内使用相同员工卡大于等于三次的人
力扣公司的员工都使用员工卡来开办公室的门。每当一个员工使用一次他的员工卡,安保系统会记录下员工的名字和使用时间。如果一个员工在一小时时间内使用员工卡的次数大于等于三次,这个系统会自动发布一个 警告 。原创 2023-02-07 14:22:35 · 340 阅读 · 0 评论 -
【Java|golang】1640. 能否连接形成数组
给你一个整数数组 arr ,数组中的每个整数 互不相同 。另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 。请你以 任意顺序 连接 pieces 中的数组以形成 arr 。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。原创 2022-09-22 10:08:47 · 126 阅读 · 0 评论 -
【Java|golang】1408. 数组中的字符串匹配
给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。原创 2022-08-08 10:00:37 · 343 阅读 · 0 评论 -
【java|golang】944. 删列造序---集合使用
给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。这些字符串可以每个一行,排成一个网格。例如,strs = [“abc”, “bce”, “cae”] 可以排列为:abcbcecae你需要找出并删除 不是按字典序升序排列的 列。在上面的例子(下标从 0 开始)中,列 0(‘a’, ‘b’, ‘c’)和列 2(‘c’, ‘e’, ‘e’)都是按升序排列的,而列 1(‘b’, ‘c’, ‘a’)不是,所以要删除列 1 。返回你需要删除的列数。示例 1:输入:strs =原创 2022-05-12 14:05:14 · 101 阅读 · 0 评论 -
【Java|golang】908. 最小差值 I---使用sort排序
给你一个整数数组 nums,和一个整数 k 。在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。nums 的 分数 是 nums 中最大和最小元素的差值。在对 nums 中的每个索引最多应用一次上述操作后,返回 nums 的最低 分数 。示例 1:输入:nums = [1], k = 0输出:0原创 2022-05-07 18:09:55 · 442 阅读 · 0 评论 -
【Java|golang】933. 最近的请求次数---使用队列
写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示例 1:输入:[“RecentCounter”,原创 2022-05-07 09:35:49 · 181 阅读 · 0 评论 -
【Java|golang】398. 随机数索引---使用map函数
给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例: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。因为只有num原创 2022-04-25 13:08:11 · 253 阅读 · 0 评论 -
【Java】219. 存在重复元素 II---时间复杂度O(N),使用集合存储下标。
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,1], k = 3输出:true示例 2:输入:nums = [1,0,1,1], k = 1输出:true示例 3:输入:nums = [1,2,3,1,2,3], k = 2输出:false提示:1 &l原创 2022-01-19 13:15:46 · 337 阅读 · 0 评论 -
【Java】373. 查找和最小的K对数字---使用优先级队列,避免踩坑。
给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数:[1,2],[1,4],[1,6],[7,2],[7,4],[11原创 2022-01-14 09:39:47 · 183 阅读 · 0 评论 -
【Java】300. 最长递增子序列---时间复杂度 O(n log(n)),使用TreeSet集合详细教程
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7,7]原创 2022-01-12 15:12:28 · 193 阅读 · 0 评论 -
【Java】快速了解ConcurrentSkipListMap常用方法
代码:ConcurrentSkipListMap<String,Integer> cslMap = new ConcurrentSkipListMap<String,Integer>(); cslMap.put("2017-05-22 16:18:10_key1", 1); cslMap.put("2017-05-22 16:18:08_key2", 2); cslMap.put("2017-05-22 16:18:20_key3",原创 2021-12-27 18:56:30 · 1099 阅读 · 0 评论 -
【sql】关于数据库存储json类型存在的问题,以及数据库多条数据合并一条数据的sql使用问题
今日和大家分享下关于数据库存储json类型存在的问题,以及数据库多条数据合并一条数据的sql使用问题等。最近在公司接收了一个新系统,需要在原来的基础上添加一些字段,以及相关统计信息做出一定的修改。需求评审会议开的倒不少,最后要面对后端代码的也是自己孤身一人。看别人的代码给我的第一感觉就是乱,不过在中能学到上个人处理问题的逻辑,可以学习学习,也能提升一下自己。要处理的第一个问题就是对数据库json字段的子类按照指定规则进行排序,然后我就在插入的时候先排序再插入,然后展示的时候使用Map<Strin原创 2021-11-23 16:07:16 · 1721 阅读 · 0 评论 -
【Java】496. 下一个更大元素 I---使用stack栈和map集合,时间复杂度O(N),超详细教程
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更原创 2021-11-17 18:43:48 · 97 阅读 · 0 评论 -
【Java】391. 完美矩形---计算完美矩阵的四点坐标,并计算其面积得出完美矩阵,超详细解析。
给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。如果所有矩形一起精确覆盖了某个矩形区域,则返回 true ;否则,返回 false 。示例 1:输入:rectangles = [[1,1,3,3],[3,1,4,2],[3,2,4,4],[1,3,2,4],[2,3,3,4]]输出:true解释:5 个矩形一起可以精确地覆盖一个矩形区域原创 2021-11-16 10:35:06 · 1921 阅读 · 0 评论 -
【Java】677. 键值映射---自定义map的插入和查询。
实现一个 MapSum 类,支持两个方法,insert 和 sum:MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。示例:输入:[“MapSum”, “insert”, “sum”, “in原创 2021-11-15 14:42:35 · 744 阅读 · 0 评论 -
【Java】299. 猜数字游戏---巧妙使用数组,避免使用较高的空间以及浪费更多的时间。
你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 “Bulls”, 公牛),有多少位属于数字猜对了但是位置不对(称为 “Cows”, 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提示。提示的格式为 “xAy原创 2021-11-08 14:52:10 · 177 阅读 · 0 评论 -
【Java】228. 汇总区间---时间复杂度O(N),注意数组的最后一位元素!!!
给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5”,“7”]解释:区间范围是:[0,2] -->原创 2021-09-06 22:24:23 · 75 阅读 · 0 评论 -
【Java】526. 优美的排列---使用dfs深度搜索和集合一起连用!!!
假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第 i 位的数字能被 i 整除i 能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?示例1:输入: 2输出: 2解释:第 1 个优美的排列是 [1, 2]:第 1 个位置(i=1)上的数字是1,1能被 i(i=1)整除第 2 个位置(i=2)上的数字是2,原创 2021-08-16 12:09:12 · 136 阅读 · 0 评论 -
【Java】500. 键盘行---使用集合,对字符串进行分割,去重,避免踩坑!!!
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。American keyboard示例 1:输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]输出:[“Alaska”,“Dad”]示例 2:输入:words = [“omk”]输出:[]示例 3:输原创 2021-07-28 10:13:46 · 160 阅读 · 0 评论 -
【Java】863. 二叉树中所有距离为 K 的结点---使用map记录父节点,使用dfs搜索遍历!!!
给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1注意,输入的 “root” 和 “target” 实际上是树上的结点。上面的输入仅原创 2021-07-28 09:22:04 · 127 阅读 · 0 评论 -
【Java】1893. 检查是否区域内所有整数都被覆盖---使用集合和使用排序,两种方法进行对比!!!
给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖,那么请你返回 true ,否则返回 false 。已知区间 ranges[i] = [starti, endi] ,如果整数 x 满足 starti <= x <= endi ,那么我们称整数x 被覆盖了。示例原创 2021-07-23 09:39:08 · 191 阅读 · 0 评论 -
【Java】981. 基于时间的键值存储---使用hashmap和treemap结合,快速解决问题!!!
创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作:set(string key, string value, int timestamp)存储键 key、值 value,以及给定的时间戳 timestamp。2. get(string key, int timestamp)返回先前调用 set(key, value, timestamp_prev) 所存储的值,其中 timestamp_prev <= timestamp。如果有多个这样的值,则返回对应最大的 times原创 2021-07-10 10:03:15 · 176 阅读 · 0 评论 -
【Java】930. 和相同的二元子数组---使用map集合,记录k-v键值对,时间复杂度O(N)!!!
给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。子数组 是数组的一段连续部分。示例 1:输入:nums = [1,0,1,0,1], goal = 2输出:4解释:有 4 个满足题目要求的子数组:[1,0,1]、[1,0,1,0]、[0,1,0,1]、[1,0,1]示例 2:输入:nums = [0,0,0,0,0], goal = 0输出:15提示:1 <= nums.length <= 3 * 104num原创 2021-07-09 18:53:56 · 146 阅读 · 0 评论 -
【Java】1711. 大餐计数---使用Map+枚举方法,避免时间超时限制!!!
大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 109 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输出:4解释:大餐原创 2021-07-07 10:49:34 · 139 阅读 · 0 评论 -
【Java】1418. 点菜展示表---使用Map,List,Set混合使用,快速解决问题!!!
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应当原创 2021-07-06 10:23:10 · 91 阅读 · 0 评论 -
【Java】451. 根据字符出现频率排序---通过Collections类对hashmap的value进行排序,快速解决问题!!!
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例 3:输入:“Aabb”输出:“bbAa”解释:原创 2021-07-03 10:02:06 · 130 阅读 · 0 评论 -
【Java】752. 打开转盘锁---使用层次遍历,查询最短路径!!!
你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的数字,你需原创 2021-06-27 18:00:44 · 85 阅读 · 0 评论 -
【Java】149. 直线上最多的点数---时间复杂度O(N^2),快速解决问题!!!
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。示例 1:输入:points = [[1,1],[2,2],[3,3]]输出:3示例 2:输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出:4提示:1 <= points.length <= 300points[i].length == 2-104 <= xi, yi <原创 2021-06-24 09:33:15 · 113 阅读 · 0 评论 -
【Java】5777. 使数组元素相等的减少操作次数---使用map集合快速解决问题!!!
给你一个整数数组 nums ,你的目标是令 nums 中的所有元素相等。完成一次减少操作需要遵照下面的几个步骤:找出 nums 中的 最大 值。记这个值为 largest 并取其下标 i (下标从 0 开始计数)。如果有多个元素都是最大值,则取最小的 i 。找出 nums 中的 下一个最大 值,这个值 严格小于 largest ,记为 nextLargest 。将 nums[i] 减少到 nextLargest 。返回使 nums 中的所有元素相等的操作次数。示例 1:输入:nums = [5,原创 2021-06-06 12:04:52 · 135 阅读 · 1 评论 -
【java】692. 前K个高频单词--使用PriorityQueue实现最小堆,使用map集合计算元素出现的数量!!!
给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “day”, “is”, “sunny原创 2021-05-20 09:36:27 · 95 阅读 · 0 评论 -
【java】1482. 制作 m 束花所需的最少天数---使用二分查找,Treeset集合,快速解决问题!!!
现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,2], m = 3, k = 1输出:3解释:让我们一起观察这三天的花开过程,x 表示花开,而 _ 表示花还未开。现在需要制作 3 束花,每束只需要 1 朵。1 天后:[x, _,原创 2021-05-09 10:20:34 · 205 阅读 · 4 评论 -
【java】740. 删除并获得点数---使用动态规划,以及map集合的getOrDefault()方法,避免踩坑!!!
每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2]输出:6解释:删除 4 获得 4 个点数,因此 3 也被删除。之后,删除 2 获得 2 个点数。总共获得 6 个点数。示例 2:输入:nums = [2,2,3,3,3,4]输出:9解释:删除 3 获得 3 个点数,原创 2021-05-05 15:25:06 · 73 阅读 · 0 评论 -
【java】554. 砖墙--用集合代替不定长数组,最牛算法!!!
你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量 。示例 1:原创 2021-05-02 10:36:13 · 122 阅读 · 0 评论 -
【java】137. 只出现一次的数字 II---集和快速解决,避免踩坑!!!
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次代码1:public int原创 2021-04-30 11:37:28 · 113 阅读 · 0 评论 -
【java】220. 存在重复元素 III---了解TreeSet底层实现,避免踩坑!!!
给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在两个下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。示例 1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例 3:输入:nums = [1,5,9,1,5原创 2021-04-17 10:31:40 · 75 阅读 · 0 评论 -
【java】781. 森林中的兔子---使用集合Map,踩坑的一天天!!!
森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 “2” 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最少数量是 5: 3 只回答的原创 2021-04-04 11:24:23 · 1038 阅读 · 0 评论 -
【java】5694. 设计一个验证系统---用key-value解决两变量的关系!!!
你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了,那么它会在 currentTime (可能与之前的 currentTime 不同)时刻延长 timeToLive 秒。请你实现 AuthenticationManager 类:AuthenticationManager(int timeToLive) 构造 AuthenticationManager 并设置 timeToLive 参原创 2021-03-21 09:02:12 · 166 阅读 · 1 评论