LeetCode Contest 329
首先祝大家兔年快乐!今年工作一切顺利 6296. Alternating Digit Sum 给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号: 最高有效位 上的数字分配到 正 号。 剩余每位上数字的符号都与其相邻数字相反。 返回所有数字及其对应符号的和。 测试样例 输入:n = 521 输出:4 解释: (+5) + (-2) + (+1) = 4 解答:按照题意编码计算即可 class…
首先祝大家兔年快乐!今年工作一切顺利 6296. Alternating Digit Sum 给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号: 最高有效位 上的数字分配到 正 号。 剩余每位上数字的符号都与其相邻数字相反。 返回所有数字及其对应符号的和。 测试样例 输入:n = 521 输出:4 解释: (+5) + (-2) + (+1) = 4 解答:按照题意编码计算即可 class…
首先祝大家兔年快乐! 6300. Minimum Common Value 给你两个整数数组 nums1 和 nums2 ,它们已经按非降序排序,请你返回两个数组的 最小公共整数 。如果两个数组 nums1 和 nums2 没有公共整数,请你返回 -1 。 如果一个整数在两个数组中都 至少出现一次 ,那么这个整数是数组 nums1 和 nums2 公共 的。 测试样例 输入:nums1 = ,…
6291. Difference Between Element Sum and Digit Sum of an Array 给你一个正整数数组 nums 。 元素和 是 nums 中的所有元素相加求和。 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。 返回 元素和 与 数字和 的绝对差。 注意:两个整数 x 和…
CLH队列是由Craig, Landin 和 Hagersten设计的队列。它是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程只在本地变量上自旋,它不断轮询前驱的状态,如果发现前驱释放了锁就结束自旋。 首先,我们来看一下基础的检查并设置(test-and-set)自旋锁。假设锁是一个布尔值,我们用一个伪代码进行演示。 func acquire(lock): while true: if atomic_test_and_set(lock.flag): return 如果当前竞争很少的话,那这段代码的运行速度会非常快。但是如果有十个线程同时竞争同一个锁呢?你会有9个线程在不断尝试,这会消耗大量的CPU资源。我们有一些常用的方法可以减少这样的CPU浪费:队列锁。 队列锁意味着你给每个线程一个自有的锁,这样就不存在竞争了。然后你可以将它们连接在一起形成一个队列。这可能比较抽象,我们用一个例子来说明: 现在你想获取一个锁。首先你会试图将自己放入一个队列。如果放入成功,且队列为空,则你成功获取锁,这时候你会将自己标记为成功。如果放入成功,但是队列不为空,你会将自己标记为等待,并监听自己之前的节点。这个时候你可以选择自旋或者sleep。Java的AQS实现利用了sleep-waiting模式,避免自旋浪费CPU资源。 如果你获取锁成功,且使用完毕释放锁了。你会将自己成功标记去除 func acquire(lock, node): node->flag = true prev = node->prev = swap(lock, node) while node->flag:…
6283. Maximum Count of Positive Integer and Negative Integer 给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。 换句话讲,如果 nums 中正整数的数目是 pos ,而负整数的数目是 neg ,返回 pos 和 neg二者中的最大值。 注意:0 既不是正整数也不是负整数。 测试样例 输入:nums = 输出:3…
6287. Categorize Box According to Criteria 给你四个整数 length ,width ,height 和 mass ,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子 类别 的字符串。 如果满足以下条件,那么箱子是 "Bulky" 的: 箱子 至少有一个 维度大于等于 10^4 。 或者箱子的 体积 大于等于 10^9 。 如果箱子的质量大于等于 100…
6278. Count the Digits That Divide a Number 给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val == 0 ,则认为整数 val 可以整除 nums 。 测试样例: 输入:num = 7…
6269. Shortest Distance to Target String in a Circular Array 给你一个下标从 0 开始的 环形 字符串数组 words 和一个字符串 target 。环形数组 意味着数组首尾相连。 形式上, words 的下一个元素是 words ,而 words 的前一个元素是 words ,其中 n…
6273. Maximum Enemy Forts That Can Be Captured 给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。forts 可以是 -1 ,0 或者 1 ,其中: -1 表示第 i 个位置 没有 城堡。 0 表示第 i…
6265. Count Pairs Of Similar Strings 给你一个下标从 0 开始的字符串数组 words 。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 例如,"abca" 和 "cba" 相似,因为它们都由字符 'a'、'b'、'c' 组成。 然而,"abacba" 和 "bcfd" 不相似,因为它们不是相同字符组成的。 请你找出满足字符串 words 和 words 相似的下标对 (i,…