ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

把二维摊平,其实是在考你“迭代器的素养”——从《展开二维向量(Flatten 2D Vector)》聊聊算法里的工程味道

把二维摊平,其实是在考你“迭代器的素养”——从《展开二维向量(Flatten 2D Vector)》聊聊算法里的工程味道

把二维摊平,其实是在考你“迭代器的素养”

——从《展开二维向量(Flatten 2D Vector)》聊聊算法里的工程味道

大家好,我是Echo_Wish
今天这个题目乍一看特别“小”——展开二维向量
小到什么程度?很多人扫一眼就觉得:

不就是两层 for 循环吗?
这也配叫算法题?

但说句实在话,这道题之所以能成为经典,不是因为它难,
而是因为——它很真实

真实到什么程度?
真实到它每天都在工程里反复出现,却经常被写得又丑又脆。


一、先把题说清楚:到底要你干嘛?

题目很简单:

给你一个二维数组,比如:

[ [1, 2], [3], [], [4, 5, 6] ]

你需要实现一个迭代器,按顺序输出:

1, 2, 3, 4, 5, 6

并且支持两个操作:

  • next():返回下一个元素
  • hasNext():判断还有没有元素
返回列表