341. Flatten Nested List Iterator
来源:互联网 发布:双录取很坑人 知乎 编辑:程序博客网 时间:2024/05/18 15:55
Given a nested list of integers, implement an iterator to flatten it.
Each element is either an integer, or a list – whose elements may also be integers or other lists.
Example 1:
Given the list [[1,1],2,[1,1]],
By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,1,2,1,1].
Example 2:
Given the list [1,[4,[6]]],
By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,4,6].
思路:主要是将vector中的每个元素中的整数元素存储到数组中即可,中间用到一个递归的过程。
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return true if this NestedInteger holds a single integer, rather than a nested list. * bool isInteger() const; * * // Return the single integer that this NestedInteger holds, if it holds a single integer * // The result is undefined if this NestedInteger holds a nested list * int getInteger() const; * * // Return the nested list that this NestedInteger holds, if it holds a nested list * // The result is undefined if this NestedInteger holds a single integer * const vector<NestedInteger> &getList() const; * }; */class NestedIterator {private: int index; vector<int> res;public: void getInter(NestedInteger& temp){ if (temp.isInteger()){ res.push_back(temp.getInteger()); return; } const vector<NestedInteger> data = temp.getList(); for (auto x : data){ getInter(x); } } NestedIterator(vector<NestedInteger> &nestedList) { for (auto x : nestedList){ getInter(x); } index = 0; } int next() { return res[index++]; } bool hasNext() { return index < res.size(); }};/** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */
阅读全文
0 0
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- ROS-笔记
- 呼吸灯 串口 SGM3146
- LeetCode 40. Combination Sum II
- 正则表达式
- 如何进行CRC校验
- 341. Flatten Nested List Iterator
- 对象标识符和对象引用+对象标识符+对象引用+为对象引用插入数据+查询对象引用OID对应的实际值+更新对象引用+删除对象引用
- BIEE 11g 使用叙述视图实现复杂中国式表格一例
- USACO-Section1.2 dualpal[字符处理]
- IOS基础控件 UIImageView swift3.1
- Pascal中repeat的用法
- Java变量
- Elastic Ball in the Frame(水题)
- 深入浅出理解视频编码H264结构