leetcode
Jin_of_Tide
这个作者很懒,什么都没留下…
展开
-
位操作(Bit Manipulation)—— Hamming Distance
目录题目:思路:要点:1、如何计算整数的二进制表示中有几个1?解法:补充:1、负数的二进制表示方法2、将1左移多少次会变成0?3、位运算的优先级题目:略;思路:先将输入的两个数做异或运算,得到结果n,再统计n二进制序列中有几个1.要点:1、如何计算整数的二进制表示中有几个1?方法一:解释见方法注释;注意这里对1进行左移运算,而不是对n...原创 2018-08-29 09:41:43 · 177 阅读 · 0 评论 -
位操作(Bit Manipulation)—— Number Complement
目录题目:思路:要点:1、如何计算取反?2、如何计算掩码?3、如何计算上述valid(num最高位1所在的位置)?解法:题目:略思路:首先计算取反的结果,然后计算掩码,最后将两者相与。要点:1、如何计算取反?利用运算符 ~2、如何计算掩码?首先计算num最高位1所在的位置,valid;然后利用mask = (1<<vali...原创 2018-08-29 10:49:27 · 211 阅读 · 0 评论 -
位操作(Bit Manipulation)—— Binary Number with Alternating Bits
目录题目:思路:要点:解法:题目:给定一个正整数,检查它是否有交替位:也就是说,两个相邻位是否总是有不同的值。思路:一、检查一个位是0还是1的同时,与保留状态比较。二、构造一个跳动信号,每次循环跳动,并且与输入数字比较更多思路参考:0/1交替要点:1、使用思路一时,我们知道逐一检查一个数字的各个位有两种方法,一是令flag = 1,将flag左移,与...原创 2018-08-29 12:12:17 · 153 阅读 · 0 评论 -
位操作(Bit Manipulation)—— Single Number 2/3
目录Single Number 2 :思路:难点:code:Single Number 3 :思路:难点:code:补充:Single Number 2 :给定一个非空的整数数组,每个元素都会出现三次,只有一个出现一次。找到那个只出现一次的元素思路:对每一个位上出现的所有元素的1的个数统计,如果是出现三次的数,那么模3的结果为0;如果是出现1次的...原创 2018-09-01 10:26:51 · 398 阅读 · 0 评论 -
位操作(Bit Manipulation)—— Sum of Two Integers
目录题目:思路:解法补充题目:用二进制实现两个整数相加,但是不使用+思路:这是一道二进制加法实现的题目,我们知道数字的每一位加法都包含了该位本身的两个数和一个Carry位,那么我们能否把这分成两个过程呢?只计算对应位置相加和只计算carry位,如 343 + 567 = 800(只计算对应位置),343 + 567 = 0110(只计算carry位),最终结果位 8...原创 2018-09-01 14:15:09 · 122 阅读 · 0 评论 -
Bit Watch
题目:略思路:本题的实质在于,在一个集合中选取算法的实现。可以将亮灯的数量,分为两个部分:小时灯的数量、分钟灯的数量难点:集合中选区一定数量的元素的实现(递归),递归函数的参数有:需要选取的集合,最后输出返回的集合, 递归结束的标志,递归中循环的起始位置,放入返回集合的中间存储变量。详情见代码。code:import java.util.*;class Solution {...原创 2018-09-10 11:02:11 · 237 阅读 · 0 评论 -
Power of N(N=2/3/4)
1、power of 2解法一:利用int范围内最大的2的整数次幂,跟n做%运算,如果能被整除,说明n是2的整数次幂解法二:我们知道二的整数次幂的一个特征(对于一个正数),二进制表示中只有一个‘1’。而n&(n-1)恰好消除最低位的‘1’.public boolean isPowerOfTwo(int n) { if(n<=0) return false...原创 2018-09-11 09:19:29 · 490 阅读 · 0 评论