本文包含如下题目:
342. Power of Four
371. Sum of Two Integers
389. Find the Difference
393. UTF-8 Validation
397. Integer Replacement
401. Binary Watch
405. Convert a Number to Hexadecimal
421. Maximum XOR of Two Numbers in an Array
461. Hamming Distance
477. Total Hamming Distance
342. Power of Four
解题思路
- 简单题,不多说了;
代码
1 | class Solution |
371. Sum of Two Integers
解题思路
- 使用
^
运算求取加和结果,使用&
运算求取进位结果,循环调用即可;
代码
1 | class Solution |
389. Find the Difference
解题思路
- 简单题,不多说了;
代码
1 | class Solution |
393. UTF-8 Validation
解题思路
- 这个题目的难点在于理解题目。。。
代码
1 | class Solution |
397. Integer Replacement
解题思路
- 如果最后两位是
11
,则加法操作比较好;反之则减法操作比较好;- 3是一个特例,如果是3的话,需要减法操作;
- 如果是最大整数,则因为无法加法操作,所以需要在最前边进行设置判断;
代码
1 | class Solution |
401. Binary Watch
结题思路
- 这道题主要是一道递归的题目,递归解决即可;
- 需要注意的是hours和minutes本身的范围,以及输出的格式;
代码
1 | class Solution |
405. Convert a Number to Hexadecimal
解题思路
- 四位四位地去转换就可以了,注意
(-1>>4)
一直都是-1
;
代码
1 | class Solution { |
421. Maximum XOR of Two Numbers in an Array
解题思路
- 计算最大异或值,从最高位开始计算,使用
set
保存从高位开始前1,2,3…位的数据;- 每次使用左移
<<
更新res,使用^
判断最后一位是0还是1;
代码
1 | class Solution |
461. Hamming Distance
解题思路
- 简单题,用到了
temp&(temp-1)
;
代码
1 | class Solution |
477. Total Hamming Distance
解题思路
- 每一位只有为1才会产生汉明距离,总的汉明距离和为1的个数×0的个数;
代码
1 | class Solution |