顺带反思下昨天做了什么吧,一如既往,刷完题,一个上午就过去了。快到十一点的时候结束,我便会想歇会儿,但又不想那么早吃饭,毕竟中午会回宿舍午休到两点多。但是从刷完题到十一点四十左右吃饭的这段时间,我都是在无所事事。下午精神太差,晚上又总会有活动。
所以昨天就听了一个强化学习的报告,看了DehazeNet的文章,跑了它的代码,去雾这一块还是没找到特别具备深度学习特色的好文章。这篇文章只是用了一个四层的网络模仿出透射率图生成的过程,然后求出透射率t,其他都是照搬传统的求A,再求J。
今天打算刷完题之后,继续重拾《统计学习方法》好好补充一下机器学习算法,传统算法+机器学习算法得双管齐下呀,不然这实习没法找。深度学习的经验就全靠吹,又不可能现场让你操作,顶会论文是没啥希望了。做这个破方向,再发篇水论文,写个毕设差不多就对得起老师了。
- Maximum Depth of Binary Tree
**思路:我想的是判断有没有子节点来让深度加一,但这样的话就有很多条支路了,不合理。像这种二叉树的问题,离不开DFS,BFS,迭代递归
class Solution(object):
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root == None:
return 0
return 1+max(self.maxDepth(root.left),self.maxDepth(root.right))
-
Binary Tree Level Order Traversal II
**思路:层序遍历,对于树结构,我们有四种遍历方式:层序、前序、中序、后序。层序遍历一般用队列,也可以用广度优先搜索。记得输出顺序.reverse()
class Solution(object):
def levelOrderBottom(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
res = []
if root == None:
return res
q = [root]
while len(q) != 0 :
res.append([node.val for node in q])
new_q = []
for node in q:
if node.left:
new_q.append(node.left)
if node.right:
new_q.append(node.right)
q = new_q
res.reverse()
return res