251. Flatten 2D Vector, iterator

Implement an iterator to flatten a 2d vector.

For example,
Given 2d vector =
[
  [1,2],
  [3],
  [4,5,6]
]

By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,2,3,4,5,6].

Solution:Iterator

思路:
Time Complexity: O() Space Complexity: O()

Solution Code:

public class Vector2D implements Iterator<Integer> {

    private Iterator<List<Integer>> i;
    private Iterator<Integer> j;
    
    public Vector2D(List<List<Integer>> vec2d) {
        i = vec2d.iterator();
    }

    @Override
    public Integer next() {
        hasNext();
        return j.next();
    }

    @Override
    public boolean hasNext() {
        while ((j == null || !j.hasNext()) && i.hasNext())
            j = i.next().iterator();
        return j != null && j.hasNext();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • Description: Given a nested list of integers, implement a...
    黑山老水阅读 3,287评论 0 0
  • 想是上苍安排好了的 他乡人流中 我遇见了你 空气里无数问号敲打着脑壳 心底上百个疑问揭不开迷底 象个探雷者小心翼翼...
    宝天曼风景阅读 4,168评论 30 23
  • 青春扑面而来让人无法阻挡 爱成长浸润着爱让青春肆意的蔓延 秋日收获的季节让金色的阳光洒满你的笑脸 肆意挥洒吧太阳明...
    哈哈同学阅读 1,241评论 0 0
  • O:今天在另一所高校上课,两个班级,同一门课程,每班57.其实在上这所高校前,完所担忧的是,这所学院的学员会不会配...
    云飞扬8866阅读 877评论 4 0