100. Same Tree:比较树的root值,然后比较树的左子树和树的右子树
101. Symmetric Tree: 用bfs的话可以先存储一整层,包括None,然后对比这一层。如果dfs的话要用一个helper函数,比较(left.left, right.right)和(left.right, right.left)
104. Maximum Depth of Binary Tree:max(左子树的高度,右子树的高度)+ 1
107. Binary Tree Level Order Traversal II:按层的遍历是最简单的了
108. Convert Sorted Array to Binary Search Tree: 不停的找mid,把mid作为当层的root,左边和右边分别传入
110. Balanced Binary Tree: 计算左子树的高度,右子树的高度,然后计算root是否是balanced,然后计算左子树是否balanced,右子树是否balanced
111. Minimum Depth of Binary Tree: 这题tricky的地方就在于要找到叶子节点并不是仅仅node is None时候返回0,而是node.left is None and node.right is None时候返回1,
112 . Path Sum: 有点类似backtracking,记录从root到达某个节点时的和,然后进入搜索就加上搜索节点,退出时则减去搜索节点的值。或者转换一下思路,对当前的sum进行递减,也就是说找 root.left, sum-root.val 和 root.right, sum-root.val,这种divide conquer的题目一定要考虑到整体函数效果,然后看看整体效果如何应用到分段上去
118. Pascal's Triangle: 简单迭代的问题
119. Pascal's Triangle II: 也是迭代问题,只要找好每一层迭代之间的关系就好了
121. Best Time to Buy and Sell Stock: 只容许进行一次买卖,记录0~i的最小值,然后stock[i] - min 就是在i点卖出时所能获得的最大利润,然后看哪一个点卖出的时候利润最大就可以了
122. Best Time to Buy and Sell Stock II: 不限买卖次数,那么只要stock[i] > stock[i-1] 就在前一个点卖出,后一个点买入
125. Valid Palindrome: 此题意义不明
136. Single Number: 利用A xor A == 0的特性,把所有的数xor一遍
141. Linked List Cycle: 快慢指针的问题
155. Min Stack: 维护两个stack,一个只用来存min的值
157. Read N Characters Given Read4: 意义不明
160. Intersection of Two Linked Lists: 用了一些数学的思路,先计算总长度,然后让长的那一个先跑几个node,然后在一起跑,并且逐一比较
167. Two Sum II - Input array is sorted: sorted的东西就可以考虑用二分法了
168. Excel Sheet Column Title: 一点点tricky 的地方就是要用n-1来计算index
6.21 - easy总结2
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
- 目录 简书的 markdown 都不支持 [TOC] 语法……我就不贴目录了。下面按照类别,列出了29道关于二叉树...