【题单】位运算(基础/性质/拆位/试填/恒等式/贪心/脑筋急转弯)

转载
作者:灵茶山艾府
链接:https://leetcode.cn/circle/discuss/dHn9Vk/

一、基础题
1486. 数组异或操作 1181
2595. 奇偶位数 1207
231. 2 的幂
342. 4 的幂
476. 数字的补数 1235
191. 位 1 的个数
338. 比特位计数 也可以 DP
1356. 根据数字二进制下 1 的数目排序 1258
461. 汉明距离
2220. 转换数字的最少位翻转次数 1282
868. 二进制间距 1307
2917. 找出数组中的 K-or 值 1389
693. 交替位二进制数
二、与或(AND/OR)的性质
AND 的数越多,结果越小。OR 的数越多,结果越大。

2980. 检查按位或是否存在尾随零 1234
1318. 或运算的最小翻转次数 1383
2419. 按位与最大的最长子数组 1496
2871. 将数组分割成最多数目的子数组 1750
2401. 最长优雅子数组 1750
3097. 或值至少为 K 的最短子数组 II 1891
3133. 数组最后一个元素的最小值 1935
2680. 最大或值 1912 可以做到 O(1) 额外空间
2411. 按位或最大的最小子数组长度 1938
3108. 带权图里旅途的最小代价 2109
898. 子数组按位或操作 2133
1521. 找到最接近目标值的函数值 2384
3117. 划分数组得到最小的值之和 2735
三、异或(XOR)的性质
1720. 解码异或后的数组 1284
2433. 找出前缀异或的原始数组 1367
1310. 子数组异或查询 1460
2683. 相邻值的按位异或 1518
1829. 每个查询的最大异或值 1523
2997. 使数组异或和等于 K 的最少操作次数 1525
1442. 形成两个异或相等数组的三元组数目 1525
2429. 最小异或 1532
2527. 查询数组异或美丽值 1550
2317. 操作后的最大异或和 1679
2588. 统计美丽子数组数目 1697
2564. 子字符串异或查询 1959
1734. 解码异或后的排列 2024
2857. 统计距离为 k 的点对 2082
另见 数据结构题单 中的「0-1 字典树(异或字典树)」。

四、拆位 / 贡献法
477. 汉明距离总和
1863. 找出所有子集的异或总和再求和 可以做到 O(n) 时间
2425. 所有数对的异或和 1622 可以做到 O(n+m) 时间
2275. 按位与结果大于零的最长组合 1642
1835. 所有数对按位与结果的异或和 1825 也有恒等式做法
2505. 所有子序列和的按位或(会员题)
十进制拆位:

3153. 所有数对中数位不同之和 ~1600
五、试填法
3007. 价值和小于等于 K 的最大数字 2258
421. 数组中两个数的最大异或值,试填法题解
2935. 找出强数对的最大异或值 II 2349
3145. 大数组元素的乘积 ~2900
3022. 给定操作次数内使剩余元素的或值最小 2918
六、恒等式
1835. 所有数对按位与结果的异或和 1825
2354. 优质数对的数目 2076
七、思维题(贪心、脑筋急转弯等)
2546. 执行逐位运算使字符串相等 1605
1558. 得到目标数组的最少函数调用次数 1637
2571. 将整数减少到零需要的最少操作数 1649 巧妙结论
2568. 最小无法得到的或值 1754
2509. 查询树中环的长度 1948
2939. 最大异或乘积 2128
2749. 得到整数零需要执行的最少操作数 2132
2835. 使子序列的和等于目标的最少操作次数 2207
2897. 对数组执行操作使平方和最大 2301
810. 黑板异或游戏 2341
八、其它
136. 只出现一次的数字
287. 寻找重复数
260. 只出现一次的数字 III
137. 只出现一次的数字 II
645. 错误的集合
190. 颠倒二进制位
371. 两整数之和
201. 数字范围按位与
2154. 将找到的值乘以 2 可以做到 O(n) 时间
2044. 统计按位或能得到最大值的子集数目 1568
2438. 二的幂数组中查询范围内的乘积 1610
1680. 连接连续二进制数字 1630
89. 格雷编码
1238. 循环码排列 1775
982. 按位与为零的三元组 2085
1611. 使整数变为 0 的最少操作次数 2345

posted on 2024-06-18 13:56  itdef  阅读(58)  评论(0编辑  收藏  举报

导航