20200329

@liwei

Plan

  • leetcode daily
  • tensorflow control flow

Notes

leetcode daily

忙于工作和私事很多天没有自我学习,今天重新开始。首先还是leetcode daily题目。

今天的题目是1162. 地图分析,整体思路和695. 岛屿最大面积感觉很类似,只是从dfs变成了bfs。具体编程中的核心思路是:

  1. 统计所有的陆地,入队列
  2. 从队列中取一个陆地,将他附近的海洋变成陆地,并将这些新变的陆地坐标入队列
  3. 循环结束的条件是队列中没有新陆地或者已经没有空余的海洋
  4. 循环的轮次即为所求的最长距离
  5. bfs保障了我们一定可以获得最短路径

编码中可以注意的点包括:队列不是必须的,每个节点的访问关系,其实我们可以将每个节点的值,用轮次来进行标注,以此直到它是新的陆地面积,只是这样时间会变慢罢了。更具体的可以参考题解了。

tensorflow control flow

  1. 控制流的5中原语为:Switch, Merge, Enter, Exit, NextIteration
  2. 使用五种原语,我们可以拼凑出类似编程语言的while_loop和switch
  3. 为了承接control flow,我需要了解tensorflow的runtime机制和control flow的c++ implementation

More

继续研究tensorflow control flow具体c++实现。之后回到mlir的研究中。