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.数字的补数中就是通过巧妙的构造了掩码来简化运算

