算法技巧
蒙奇·D·路飞·宝亮
我可是要成为海贼王的男人
展开
-
算法刷题技巧总结
一、位运算技巧n&(n-1) 将正整数二进制最低位的 1 变成 0技巧案例:https://leetcode-cn.com/problems/counting-bits/solution/bi-te-wei-ji-shu-by-leetcode-solution-0t1i/原创 2022-01-17 21:44:11 · 415 阅读 · 0 评论 -
滑动窗口-5977. 最少交换次数来组合所有的 1 II
题目链接交换 定义为选中一个数组中的两个 互不相同 的位置并交换二者的值。环形 数组是一个数组,可以认为 第一个 元素和 最后一个 元素 相邻 。给你一个 二进制环形 数组 nums ,返回在 任意位置 将数组中的所有 1 聚集在一起需要的最少交换次数。示例 1:输入:nums = [0,1,0,1,1,0,0] 输出:1 解释:这里列出一些能够将所有 1 聚集在一起的方案:[0,0,1,1,1,0,0] 交换 1 次。 [0,1,1,1,0,0,0] 交换 1 次。 [1,1,0,0,0,0原创 2022-01-09 21:21:57 · 482 阅读 · 0 评论 -
二分法遍历技巧,再也不用纠结
二分法查找技巧,再也不用纠结头疼了原创 2021-12-14 23:04:13 · 4061 阅读 · 0 评论 -
位运算技巧-异或预算找出两个出现奇数次的数
该技巧就是将所有的数进行异或,因为其他的数字出现次数为偶数次,所以自己抵消为零了,剩下的结果就是两个要找的数的异或结果,因为这是两个不同的数,所以必然有不相同的位,我们任意找出一个不相同的位就可以将这些数分为两组怎么找出不同的一位: 根据最后异或的结果,结果上为1的位就是两个要求的数不同的位,这是异或的性质。怎么分组: 可以通过与运算将数分成两组,分成之后两个不同的数必然不在同一组,因为他们在我们选取的这一位上是不同的。而相同的数必然可以分到同一组。最后两组分别异或运算得到的两个数就是结果。因为相同的原创 2022-01-06 15:36:31 · 295 阅读 · 0 评论