四月二十四号

547. Friend Circles:union find的题目,也可以用dfs来做,union find就是需要一个parent的指针。parent[x] = y, find 就是找到y的最终parent,递归的方法。union就是找到两个点的最终的parent,然后把他们变成一个parent。

238. Product of Array Except Self:以前做过,左边乘一下,右边乘一下,然后取left[i-1]*right[i+1] 就可以了

323. Number of Connected Components in an Undirected Graph: 还是union find的一个应用。

503. Next Greater Element II: 遇到循环问题可以double size原来的array

347. Top K Frequent Elements: 利用heap和hash还算是好做的

382. Linked List Random Node: followup的题目不会做,http://blog.jobbole.com/42550/ 这里是解法,蓄水池抽样,连听都没听过。。。就是对于读取到的第n个值,以1/n的概率返回(替换n-1的时候的返回值),就可以保证每个值都是以1/n的概率返回

477. Total Hamming Distance: 这题也想了半天,想到了用carry,不知道carry怎么用。。。这题要整体考虑,对于所有的数字,在某一位上形成一个是0还是1的序列,每一个10pair就形成1的hamming distance,所以就是对于每一位 0s*1s,然后假设有32位,就把这三十二位全都计算出来

498. Diagonal Traverse: 一遍过,开心!!掌握好index的变化和方向就好

445. Add Two Numbers II:这题是比较简单的,如果不准翻转linkedlist,那就只有用额外的空间,比如stack或者array

294. Flip Game II: 这题还挺巧妙的,利用递归的手法,如果player1能赢,那么就递归player2不能赢,循环下去就可以了,可惜又是没做出来。

384. Shuffle an Array:  终于独立完成了一题

你可能感兴趣的:(四月二十四号)