
位运算
Czy_whlg
不忘本心!
展开
-
Maximum XOR of Two Numbers in an Array
1. 解析题目大意,求解数组中异或结果最大的两个数。要求时间复杂度为O(n)2. 分析如果对时间复杂度没有要求,这道就是简单题,两层循环遍历即可。但要求O(n)的时间复杂度那就很复杂了,反正我是想不出来的。主要涉及到一个数学的公式:a ^ b = c ——> b = b ^ c。大家可以参考@Grandyang的博客,分析的很到位,但我还是觉得有点绕。这题难度有点大,我就...原创 2019-12-20 20:39:30 · 108 阅读 · 0 评论 -
Longest Substring with At Least K Repeating Characters
1. 解析题目大意,求解最长的子序列,该子序列中不同字符出现的次数不少于k次。2. 分析按照我们正常的思路就是无非就是检测每个字符字串的组合,但存在一个问题是如果如何避免每次从开头的下一个字符开始遍历。就是设置一个mask掩码,字符串只由26个小写字母组成,最多用一个26位的二进制掩码即可表示,另外用一个计数器,记录每个字符出现的次数,若在子串当中的不同字符出现的次数都大于或等...原创 2019-12-20 19:57:32 · 236 阅读 · 0 评论 -
Find the Duplicate Number
1. 解析题目大意,在(n+1)个元素(数值的范围为1-n)组成的数组中,查找出重复出现的元素,要求时间复杂度小于O(n^2),空间复杂度为O(1).2. 分析如果不限制空间复杂度,还是很容易想到一种解法,利用hashtable记录出现过的元素,很容易找出重复的元素,或者直接对数组进行排序,也很方便检测出重复出现的元素;其实,本题最本质是考察鸽巢原理,即将10个苹果放在9个空抽屉...原创 2019-11-20 21:31:33 · 103 阅读 · 0 评论 -
Single Number III
1. 解析题目大意,数组由出现次数为2次的元素和单次出现的2个元素组成,找出单次出现的这两个元素,要求时间复杂度为O(n),空间复杂度为O(1)2.分析一般比较容易想到的就是利用hashtable存储出现元素的次数,若重复出现,则调过,否则直接输出即可;但题目要求的是常数级空间复杂度,还是比较难的~我大致讲解一下其他博主的思路,首先对数组nums中的所有元素求异或,异或的结果就是...原创 2019-11-18 17:14:00 · 108 阅读 · 0 评论 -
Bitwise AND of Numbers Range
1. 解析题意,在[m, n]的范围内求位与,题目不难,关键是找出规律2. 解析我采用了一种本方法,没有利用规律.在一定范围内求所有数的位与,与运算我们都知道,当且仅当都为1时,结果为1,观察就可以发现,在[m, n]内求所有数的与取决于最小值m的位数,例如m=5,二进制为101,那么当最大值超过1000(8)之后,后面的计算就没有意义了,所以就可以将最小值m所表示位数的最大值替代...原创 2019-11-07 17:32:48 · 137 阅读 · 0 评论 -
Repeated DNA Sequences
1. 解析题目大意,找出至少出现两次的10个字母子序列,整体上不是很难,只需借助hashtable进行查找即可.2. 分析每次取10个字符,如题目中所给的示例,"AAAAACCCCC",然后将其放进hashtable当中进行存储,记录其出现的次数,然后移动到下一个位置,接着取"AAAACCCCCC",在hashtable中查找其出现的次数,若当前没有出现过,则将其放进hashtab...原创 2019-11-04 16:55:38 · 330 阅读 · 0 评论 -
Single Number II
解析:这道题难点在于不能使用额外的内存空间,是一道位运算的经典模型整体思路:将数组中的元素看成32位的二进制数,因为除了一个单独的数之外,每个元素都是重复出现三次,就意味着重复元素的二进制表示在每一位上的和一定可以被3整除[关键]1.计算二进制每一个数位上的和,除以3得到的余数就是单独数的二进制数位(精妙)2.重复计算32位,然后进行求或即可得到结果例如:2 2 3 2 [其余30位...原创 2019-10-25 19:39:27 · 122 阅读 · 0 评论 -
Gray Code
参考大神的解法:利用镜面对称,结合迭代和位运算,整个处理太奇妙了,尤其是这步res[j] | (1 << i)。如下图class Solution {public: vector<int> grayCode(int n) { vector<int> res(1); for (int i = 0; ...原创 2019-10-12 11:58:52 · 112 阅读 · 0 评论