列表

详情


251. 展开二维向量

请设计并实现一个能够展开二维向量的迭代器。该迭代器需要支持 next 和 hasNext 两种操作。

 

示例:

Vector2D iterator = new Vector2D([[1,2],[3],[4]]);

iterator.next(); // 返回 1
iterator.next(); // 返回 2
iterator.next(); // 返回 3
iterator.hasNext(); // 返回 true
iterator.hasNext(); // 返回 true
iterator.next(); // 返回 4
iterator.hasNext(); // 返回 false

 

注意:

  1. 请记得 重置 在 Vector2D 中声明的类变量(静态变量),因为类变量会 在多个测试用例中保持不变,影响判题准确。请 查阅 这里。
  2. 你可以假定 next() 的调用总是合法的,即当 next() 被调用时,二维向量总是存在至少一个后续元素。

 

进阶:尝试在代码中仅使用 C++ 提供的迭代器Java 提供的迭代器

相似题目

二叉搜索树迭代器

锯齿迭代器

窥视迭代器

扁平化嵌套列表迭代器

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Vector2D { public: Vector2D(vector<vector<int>>& vec) { } int next() { } bool hasNext() { } }; /** * Your Vector2D object will be instantiated and called as such: * Vector2D* obj = new Vector2D(vec); * int param_1 = obj->next(); * bool param_2 = obj->hasNext(); */

上一题