2023

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…

LeetCode Contest 338

6354. K Items With the Maximum Sum 袋子中装有一些物品,每个物品上都标记着数字 1 、0 或 -1 。 给你四个非负整数 numOnes 、numZeros 、numNegOnes 和 k 。 袋子最初包含: numOnes 件标记为 1 的物品。 numZeroes 件标记为 0 的物品。 numNegOnes…

Condition的源码分析

这篇我们会继续讲解一个经常和ReentrantLock配套使用的组建:Condition。对于Condition来说,一切的故事开始于: public Condition newCondition() { return sync.newCondition(); } sync对象封装了该方法: final ConditionObject newCondition() { return new ConditionObject(); } ConditionObject就是Condition的实现类,该对象也在AQS的文件中。它有2个成员对象: /** First node of condition queue. */ private transient Node firstWaiter; /**…

LeetCode Contest 337

6319. Number of Even and Odd Bits 给你一个 正 整数 n 。 用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。 用 odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。…

LeetCode Biweekly Contest 100

6323. Distribute Money to Maximum Children 给你一个整数 money ,表示你总共有的钱数(单位为美元)和另一个整数 children ,表示你要将钱分配给多少个儿童。 你需要按照如下规则分配: 所有的钱都必须被分配。 每个儿童至少获得 1 美元。 没有人获得 4 美元。 请你按照上述规则分配金钱,并返回 最多 有多少个儿童获得 恰好 8 美元。如果没有任何分配方案,返回 -1 。 测试样例 输入:money =…

LeetCode Contest 336

6315. Count the Number of Vowel Strings in Range 给你一个下标从 0 开始的字符串数组 words 和两个整数:left 和 right 。 如果字符串以元音字母开头并以元音字母结尾,那么该字符串就是一个 元音字符串 ,其中元音字母是 'a'、'e'、'i'、'o'、'u' 。 返回 words 是元音字符串的数目,其中 i 在闭区间 内。 测试样例 输入:words…

ReentrantLock 源码分析 Part 2

今天我们继续更新Java并发系列,往期内容大家可以点击Java并发系列查看。接着上一次内容,这次主要会讲解一下ReentrantLock的解锁流程. unlock函数 上次我们提到了ReentrantLock的使用范式中: class X { private final ReentrantLock lock = new ReentrantLock(); //.. public void m() { lock.lock(); try { //.. method body } finally { lock.unlock(); } }…

LeetCode Contest 335

6307. Pass the Pillow n 个人站成一排,按从 1 到 n 编号。 最初,排在队首的第一个人拿着一个枕头。每秒钟,拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾,传递方向就会改变,队伍会继续沿相反方向传递枕头。 例如,当枕头到达第 n 个人时,TA 会将枕头传递给第 n - 1 个人,然后传递给第 n - 2 个人,依此类推。 给你两个正整数 n 和 time ,返回 time 秒后拿着枕头的人的编号。…

LeetCode Biweekly Contest 99

这周双周赛,我觉得题目不是很好。基本都是脑经急转弯,非常不友好。 6312. Split With Minimum Sum 给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中所有数字出现的次数之和等于 num 中所有数字出现的次数。 num1 和 num2 可以包含前导 0…