April 2023

LeetCode Contest 343

6341. Determine the Winner of a Bowling Game 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i…

LeetCode Biweekly Contest 103

6406. Maximum Sum With Exactly K Elements 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中选择一个元素 m 。 将选中的元素 m 从数组中删除。 将新元素 m + 1 添加到数组中。…

LeetCode Contest 342

6387. Calculate Delayed Arrival Time 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 测试样例 输入:arrivalTime = 15, delayedTime = 5 输出:20 解释:列车正点到站时间是 15:00 ,延误 5 小时,所以列车实际到站的时间是 15 + 5…

LeetCode Contest 341

6376. Row With Maximum Ones 给你一个大小为 m x n 的二进制矩阵 mat ,请你找出包含最多 1 的行的下标(从 0 开始)以及这一行中 1 的数目。 如果有多行包含最多的 1 ,只需要选择 行下标最小 的那一行。 返回一个由行下标和该行中 1 的数量组成的数组。 测试样例 输入:mat = ,]…

LeetCode Contest 340

6361. Prime In Diagonal 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数,返回 0 。 注意: 如果某个整数大于 1 ,且不存在除 1 和自身之外的正整数因子,则认为该整数是一个质数。 如果存在整数 i ,使得 nums = val…

ReentrantReadWriteLock基础介绍

简介 之前我们主要介绍了ReentrantLock和其相关的Condition的内容。今天我们主要会过一下ReentrantReadWriteLock的代码。现实中,读写锁的使用非常多。如果你也是一个大数据工程师,同时使用过Spark的话,就会知道Spark内部有一个BlockInfoManager的类。在大数据计算中,常用的是基于复制的模式,读多写少的任务非常常见,有读写锁可以有效的减少锁竞争,提高数据查询速率。今天这一节,我们就简单介绍一下ReentrantReadWriteLock和它背后的一点数学知识。 读写锁的3条规定: 允许多个线程同时读共享变量 只允许一个线程写共享变量 如果写线程正在执行写出操作,那么禁止其他线程读写共享变量。 ReentrantReadWriteLock的特殊属性:锁降级:遵循先获取写锁,获取读锁,再释放写锁的次序。写锁可以降级成读锁 ReentrantReadWriteLock的实现的接口是ReadWriteLock: public interface ReadWriteLock { /** * Returns the lock used for reading. * * @return the lock used for reading */ Lock…

LeetCode Contest 339

6362. Find the Longest Balanced Substring of a Binary String 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。…

LeetCode Biweekly Contest 101

6327. Form Smallest Number From Two Digit Arrays 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数组都 至少 包含这个数字的某个数位。 测试样例 输入:nums1 = , nums2 = 输出:15…