20200329
Plan
- leetcode daily
- tensorflow control flow
Notes
leetcode daily
忙于工作和私事很多天没有自我学习,今天重新开始。首先还是leetcode daily题目。
今天的题目是1162. 地图分析,整体思路和695. 岛屿最大面积感觉很类似,只是从dfs变成了bfs。具体编程中的核心思路是:
- 统计所有的陆地,入队列
- 从队列中取一个陆地,将他附近的海洋变成陆地,并将这些新变的陆地坐标入队列
- 循环结束的条件是队列中没有新陆地或者已经没有空余的海洋
- 循环的轮次即为所求的最长距离
- bfs保障了我们一定可以获得最短路径
编码中可以注意的点包括:队列不是必须的,每个节点的访问关系,其实我们可以将每个节点的值,用轮次来进行标注,以此直到它是新的陆地面积,只是这样时间会变慢罢了。更具体的可以参考题解了。
tensorflow control flow
- 控制流的5中原语为:Switch, Merge, Enter, Exit, NextIteration
- 使用五种原语,我们可以拼凑出类似编程语言的while_loop和switch
- 为了承接control flow,我需要了解tensorflow的runtime机制和control flow的c++ implementation
More
继续研究tensorflow control flow具体c++实现。之后回到mlir的研究中。