leetcode540. Single Element in a Sorted Array

2020-02-01
阅读 2 分钟
2k
You are given a sorted array consisting of only integers where every element appears exactly twice, except for one element which appears exactly once. Find this single element that appears only once.

leetcode421. Maximum XOR of Two Numbers in an Array

2019-11-06
阅读 5 分钟
1.6k
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai< 231.

leetcode477. Total Hamming Distance

2019-10-06
阅读 2 分钟
1.7k
计算N个数字之间的汉明码距离之和。汉明码是指两个数字的二进制表示形式中,在对应位置上值不同的数量总和。如2和4,4的二进制表达式为100, 2的二进制表达式010,则二者在第二位和第三位的值不同,因此汉明码值为2。

leetcode 338. Counting Bits

2018-03-25
阅读 2 分钟
2.9k
这里除了暴力的计算每个数字中含有多少个1,我们可以使用动态规划的方法来计算i中有几个1。假设我们已经知道前i-1个数字分别有多少个1,而且i中含有k个数字,那么其实很容易的想到,i中1的个数等于前k-1位构成的数字的1的个数,加上第k位1的个数,即1或是0。还有一种等价的思路是第0位的1的个数(0或是1)加上1~k位构成...

leetcode318. Maximum Product of Word Lengths

2018-03-13
阅读 2 分钟
1.8k
这道题的重点在于如何优化字符串的比较。直观的来说,我们无法避开复杂度为O(n^2)的循环因为必须进行两两比较才能识别出最大的乘积。但是我们可以优化字符串的比较。

leetcode260. Single Number III

2018-02-23
阅读 2 分钟
1.5k
题目要求 {代码...} 假设一个整数数组中,除了两个数字以外,所有的数字都出现了两遍。要求我们找到这两个数字。 可以先参考Single Number I 和 Single Number II。 思路与代码 这里需要了解两个位运算的重要知识: a^b^b = a 即b^b=0 a&(-a)能够获得a的二进制形式的最右侧的1的位置。 举例解释一下第二个位运算:一...

leetcode231. Power of Two

2018-02-04
阅读 1 分钟
1.4k
当我们从二进制的角度来看,这个题目就非常简单了。其实题目的要求等价于该整数对应的二进制数中,一共有几个1。该题目的难点在于考虑边界情况,比如-2^32,即10000000000000000000000000000000。虽然它只有一个1,但是它不是2的幂。

leetcode201. Bitwise AND of Numbers Range

2018-02-04
阅读 2 分钟
1.6k
给一个闭区间[m,n],对该闭区间的所有数字进行与(and)运算。与预算是指 1 and 1 = 0, 1 and 0 = 0, 0 and 1 = 0, 0 and 0 = 0。这里都是以二进制为基础进行与运算。在计算机底层所有的十进制数都是以二进制数进行存储的。写这道题目之前需要先去了解十进制转二进制以及未操作符>>,>>>和<<。

leetcode137. Single Number II

2017-08-15
阅读 1 分钟
1.9k
在看下面的文章前,请先参考我的这篇文章关于Single Number I。按照思路一和思路二很容易将这题解决。下面要讲一个通过位计算来实现的方法。在这里,我们希望将出现三次的数字通过%3操作划掉。比如将一个数字化为二进制数之后,在某一位上的数字为1,则1*3%3=0,如果在某一位上为0,则0*3%3=0。也就是说,出现三次的数值...

leetcode136. Single Number

2017-08-15
阅读 2 分钟
2.4k
可以通过set来记录数字出现的情况。如果set中不曾出现该数字,则加入set。如果已经出现,则将其从set中删除。最后无法从set中删除的数字,则是single number