Leetcode位运算与数学
题目列表
题目 | 难度 |
---|---|
7. 整数反转 | 中等 |
9. 回文数 | 简单 |
50. Pow(x, n) | 中等 |
66. 加一 | 简单 |
67. 二进制求和 | 简单 |
69. Sqrt(x) | 简单 |
136. 只出现一次的数字 | 简单 |
168. Excel表列名称 | 简单 |
171. Excel 表列序号 | 简单 |
190. 颠倒二进制位 | 简单 |
191. 位1的个数 | 简单 |
202. 快乐数 | 简单 |
231. 2 的幂 | 简单 |
258. 各位相加 | 简单 |
263. 丑数 | 简单 |
292. Nim 游戏 | 简单 |
326. 3 的幂 | 简单 |
338. 比特位计数 | 简单 |
342. 4的幂 | 简单 |
367. 有效的完全平方数 | 简单 |
372. 超级次方 | 中等 |
374. 猜数字大小 | 简单 |
401. 二进制手表 | 简单 |
405. 数字转换为十六进制数 | 简单 |
415. 字符串相加 | 简单 |
441. 排列硬币 | 简单 |
461. 汉明距离 | 简单 |
476. 数字的补数 | 简单 |
492. 构造矩形 | 简单 |
技巧与分析:
关于数学相关的题,一般涉及到进制转换,以及位数颠倒之类的技巧
在7.整数反转
中就是经典的颠倒顺序,是基本操作需要掌握
而对于数字的基本运算,需要利用到模拟的思想,用程序模仿手算
比如:
66.加1
中的运算,就和手算一样,有进位上一位就+1,没有就直接输出67.二进制求和
中,模拟进位,从低位到高位,也是这一思想的体现,相同的思路在415 字符串相加
中再次体现168,171
中,实际上是模拟26进制与10进制之间的转换
而在202 快乐数
中,数字会进入循环,而快慢指针判断成环的方法,从链表应用到数学,非常巧妙
有些题是无聊的二分查找,比如69,367,374,441,492
还有些题是脑筋急转弯,比如258,292
对于位运算,涉及到的是对具体位的修改与统计,还有异或操作的妙用
在136 只出现一次的数字
中,异或操作第一次出现
在190 颠倒二进制位
中n保留最后一位,又逐位反转的方法很有效
对于n&n-1
能让n的最低位1反转这一技巧,被反复用到
比如在191,231,338,342,461
中都有用到
而构造掩码也是一个技巧,在342.4的幂
和476.数字的补数
中就是通过巧妙的构造了掩码来简化运算