剑指offer day8
65、不用加减乘除做加法
a^b相当于a和b无进位的求和,而a&b相当于求每位的进位数,当且仅当a都为1时才为1。
但这里注意,9&1为1,而不是我们想要的是10,即我们这里还要对其进行左移一位。
即这里公式为 a^b^((a&b)<<1)表示 每次求无进位和+每次求的的进位数
1 | class Solution{ |
66、构建乘积数组 https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof/
本题由前缀积形成。 即每一个位置当前的元素为他的前缀积*后缀积。
因此我们需要两次遍历,第一次遍历求的左边部分的乘积,第二次遍历求得第二次遍历的乘积
1 | class Solution{ |
67、把字符串转换为整数 https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
常规的转换会很简单,但是这里我们要考虑前面的空格,正负号,以及数据溢出等情况。
1 | class Solution { |
68-1 二叉树的最近公共祖先 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/
LCA问题
如果这题是普通的二叉树的最近公共祖先
1 | class Solution{ |
但是这题还给了一个二分搜索树的性质,如果我们继续这样做,就有点overhead了
1 | class Solution { |
68-2 二叉树的最近公共祖先 https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/
本题就是刚才所说的常规情况
1 | class Solution { |
面试题36、https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/
1 | class Solution{ |