🗒️ 371. 两整数之和

给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。

🗒️ 190. 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。 提示: • 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 • 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。

🗒️ 31. 下一个排列

整数数组的一个 排列  就是将其所有成员以序列或线性顺序排列。 • 例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。 • 例如,arr = [1,2,3] 的下一个排列是 [1,3,2] 。 • 类似地,arr = [2,3,1] 的下一个排列是 [3,1,2] 。 • 而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。 给你一个整数数组 nums ,找出 nums 的下一个排列。 必须 原地 修改,只允许使用额外常数空间。

🗒️ 3315. 构造最小位运算数组 II

给你一个长度为 n 的质数数组 nums 。你的任务是返回一个长度为 n 的数组 ans ,对于每个下标 i ,以下 条件 均成立: • ans[i] OR (ans[i] + 1) == nums[i] 除此以外,你需要 最小化 结果数组里每一个 ans[i] 。 如果没法找到符合 条件 的 ans[i] ,那么 ans[i] = -1 。 质数 指的是一个大于 1 的自然数,且它只有 1 和自己两个因数。

🗒️ 1863. 找出所有子集的异或总和再求和

一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。 • 例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。 给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。 注意:在本题中,元素 相同 的不同子集应 多次 计数。 数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。

🗒️ 2527. 查询数组异或美丽值

给你一个下标从 0 开始的整数数组 nums 。 三个下标 i ,j 和 k 的 有效值 定义为 ((nums[i] | nums[j]) & nums[k]) 。 一个数组的 异或美丽值 是数组中所有满足 0 <= i, j, k < n  的三元组 (i, j, k) 的 有效值 的异或结果。 请你返回 nums 的异或美丽值。 注意: • val1 | val2 是 val1 和 val2 的按位或。 • val1 & val2 是 val1 和 val2 的按位与。

🗒️ 1442. 形成两个异或相等数组的三元组数目

给你一个整数数组 arr 。 现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。 a 和 b 定义如下: • a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1] • b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k] 注意:^ 表示 按位异或 操作。 请返回能够令 a == b 成立的三元组 (i, j , k) 的数目。

🗒️ 位运算

位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。

🗒️ 3387. 两天自由外汇交易后的最大货币数

给你一个字符串 initialCurrency,表示初始货币类型,并且你一开始拥有 1.0 单位的 initialCurrency。 另给你四个数组,分别表示货币对(字符串)和汇率(实数): • pairs1[i] = [startCurrencyi, targetCurrencyi] 表示在 第 1 天,可以按照汇率 rates1[i] 将 startCurrencyi 转换为 targetCurrencyi。 • pairs2[i] = [startCurrencyi, targetCurrencyi] 表示在 第 2 天,可以按照汇率 rates2[i] 将 startCurrencyi 转换为 targetCurrencyi。 • 此外,每种 targetCurrency 都可以以汇率 1 / rate 转换回对应的 startCurrency。 你可以在 第 1 天 使用 rates1 进行任意次数的兑换(包括 0 次),然后在 第 2 天 使用 rates2 再进行任意次数的兑换(包括 0 次)。 返回在两天兑换后,最大可能拥有的 initialCurrency 的数量。 注意:汇率是有效的,并且第 1 天和第 2 天的汇率之间相互独立,不会产生矛盾。

🗒️ 3091. 执行操作使数据元素之和大于等于 K

给你一个正整数 k 。最初,你有一个数组 nums = [1] 。 你可以对数组执行以下 任意 操作 任意 次数(可能为零): • 选择数组中的任何一个元素,然后将它的值 增加 1 。 • 复制数组中的任何一个元素,然后将它附加到数组的末尾。 返回使得最终数组元素之 和 大于或等于 k 所需的 最少 操作次数。

🗒️ 2829. k-avoiding 数组的最小总和

给你两个整数 n 和 k 。 对于一个由 不同 正整数组成的数组,如果其中不存在任何求和等于 k 的不同元素对,则称其为 k-avoiding 数组。 返回长度为 n 的 k-avoiding 数组的可能的最小总和。