LeetCode(Easy)-17/1/13
409. Longest Palindrome
- 题意:给定一些字符,问能构成的最长的回文串长度是多少
- 思路:每两个相同的字符就可以增加回文串2长度,如果有单个字符,则可以将其放在回文串的中间
代码
|
|
217. Contains Duplicate
- 题意:判断数组中的每个数字是不是只出现一次
- 思路:利用的set的性质就可以了,判断一下set的大小是不是等于数组长度
代码
|
|
231. Power of Two
- 题意:判断一个数是否是2的乘方
- 思路:
- 利用n&(n-1)==0,例如00100 & 00011 = 00000
- 利用对数函数的换底公式
2^x=N
->log2(N)=X
->log10(N)/log10(2)=X
,所以只要判X是不是整数就行了
代码
|
|
326. Power of Three
- 题意:不使用循环或递归判断一个数是不是3的乘方
- 思路:
- 预处理int范围内最大的3的乘方
- 利用对数函数的换底公式
代码
|
|
342. Power of Four
- 题意:不使用循环或递归判断一个数是不是4的乘方
- 思路:
- 对数函数换底公式
- 位运算判断大于0,是2的倍数,且1只在偶数位上,0x55555555=01010101010101010101010101010101
代码
|
|
191. Number of 1 Bits
- 题意:求一个数的二进制数1的位数
- 思路:通过移位,每次判断最后一个位是不是1,
>>>
无符号右移,即高位补0
代码
|
|
Integer.bitCount源码
|
|