伪斜杠青年
人们总是混淆了欲望和理想
43 | 理论理解:动态规划
四点关键: 递归+记忆化 —> 递推状态的定义:opt[n], dp[n], fib[n]状态转移⽅程:opt[n] = best_of(opt[n-1], opt[n-2], ...) 最优子...
42 | 面试题:N皇后Ⅱ问题的另一种解法 位运算
52. N皇后 II 之前的解法:点我 位运算解法: 优化之前的三个 SET/数组,直接使用三个整数,通过位运算进行判断。 具体实现:使用 int 的二进制位是否为1作为是否存放了皇后的标记。说句实在...
41 | 面试题:2的幂次方问题&比特位计数问题
231. 2的幂 判断是不是2的 x 次方。 方法一:不断除2看是否能被整除 方法二:用内置函数 方法三:上节是位运算X & (X-1) 统计1的个数,这里是位为1的个数只能是1个。 所以利用...
40 | 面试题:统计位1的个数
191. 位1的个数 解法一:取余 对数取余,余数为1,则 count ++,然后每次取余后左移一位 时间复杂度:常数级 O(1) 代码一:取余会超时,改用位运算 X & -X 判断低位是否为...
39 | 理论讲解:位运算
什么是位运算 相同为0,异或0结果依旧为 xx 异或 全1(1s 表示无数个1),结果就是取反x 异或 取反的x,因每个位都不同则为1x 异或 x 自己,因每个位都相同所以为0异或实现 swap(但有...
38 | 面试题:二维网格中的单词搜索问题
212. 单词搜索 II 解法一:DFS。 思路:枚举候选词首字母,在矩阵中寻找匹配的字符,并以该字段开始做四方向的深度搜索。没找到则换至下一个匹配的字符,以此类推。 存在的问题:对于每一个候选词,都...
37 | 面试题:实现一个字典树
208. 实现 Trie (前缀树) 这题的思路,是拆分字符,简单的做法就是每个字符都拆一拆。字典树的结构看上一篇文章。 class Trie() { /** Initialize your data...
36 | 理论讲解:字典树
实际要解决的问题 Trie 树的数据结构 Trie树,即字典树,⼜称 单词查找树 或 键树,是⼀种树形结构,是一种哈希树的变种。典型应⽤是⽤于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索...
35 | 面试题:实现一个求解平方根的函数
69. x 的平方根 解法一:二分法 思路:因为是非负整数,x 的平方是单调递增的,所以 x 的一半的平方实际上是大于 x 的。使用二分法可以找到一个相近的位置。 代码中不使用m*m 的原因是为了防止...