6.21 - easy总结3

169. Majority Element: 投票法
170. Two Sum III - Data structure design: 用hash来做,如果用list来做的话,时间是O(n), hash则是O(1)
171. Excel Sheet Column Number: 这题意义何在?
172. Factorial Trailing Zeroes: 本质上是数有多少个5
189. Rotate Array: 三段翻转法
190. Reverse Bits:这题是没想到的,bit manipulation也是我的薄弱环节,主要想法就是移位还有就是利用mask
191. Number of 1 Bits: n & (n-1)可以使最低位的1变为0
198. House Robber: 比较简单的动态规划的题目
202. Happy Number: 用hashtable记录已经计算过的数字,然后不停的计算就可以了
203. Remove Linked List Elements: 移除链表中的值,主要是记录前一个node
204. Count Primes: 这应该算是数学题,如果一个数无法被小于其的所有质数整除,那么这个数就是prime。另一种想法是反向的,对于每一个prime的数,标记x*prime都不是prime
205. Isomorphic Strings: hashtable的应用
206. Reverse Linked List: linkedlist的基本操作
217. Contains Duplicate: 用hashtable或者set
219. Contains Duplicate II: 还是hashtable来做,记录值的index
225. Implement Stack using Queues: 记住stack和queue的特性就好了
226. Invert Binary Tree: divide and conquer,要想好这个函数执行完了起的作用,并且考虑一下,执行之后针对子问题的作用,然后拼装起来
231. Power of Two: 利用位运算来做 n & (n-1) == 0
232. Implement Queue using Stacks: 和刚才那题很类似,记住queue和stack的性质,然后看看什么样的操作比较频繁,就优化哪一项操作
234. Palindrome Linked List: 翻转linkedlist后半段,然后逐项比较

你可能感兴趣的:(6.21 - easy总结3)