Sum of Nodes with Even-Valued Grandparent
给一个二叉树, 求爷爷是偶数的孙子node的值的和. 这个就是记录爷爷的val就可以.
给一个二叉树, 求爷爷是偶数的孙子node的值的和. 这个就是记录爷爷的val就可以.
求最少反转a和b中二进制的0和1的次数, 使得a|b=c. 这个题先要观察a|b=c的特性, 首先我们求出a|b, 通过和c做异或, 我们知道a|b和c有多少位上的数字是不同的. 记录做dd. 通过观察我们知道, 如果这种不同来自于两个情况, 第一是a和b一个是0, 另一个是1, 他们的a|b是1, 如果这个位上的c是0, 那么需要翻转一次. c是1的话, 那么a|b是0, 就是a和b都是0, 那么也只需要翻转一次(任意a和b)即可. 另一种情况是a和b都是1, 如果这个位上的c是0, 那么需要反转两次. 所以这个异或包含了上面两种情况, 但是对于第二种情况, 需要找出, 并且再加一次. 所以问题转化到, 如何在这个结果中找出, a|b都是1的位数? 首先算a&b得到a和b的都是1的位数, 然后再& (a|b)^c, 就得到得到(a|b)^c这个所有的位区别下, a和b都是1的位的个数. 然后加起来即可.
给一个数字n和一个2d数组, 里面是n个数字相连的情况, 问如何调整连接, 让n个数字都相连. 这个题是union-find的经典题. 首先我们知道连接n个node, 至少需要n-1个edge. 然后, 我们做union, 找到有多少个sub components. 把他们都union起来后, 这时需要的edge就是component的数目-1, 因为每个edge都只能连接两个component.
给一个数字n, 求两个数字A和B, A+B = N 并且A和B组成的数字没有0. 这个只能一个个查.