Flatten 2D Vector
https://www.lintcode.com/problem/flatten-2d-vector/description
Thoughts
Code
class Vector2D {
public:
vector<vector<int>> *ptr_vec2d;
int i = 0, j = 0;
Vector2D(vector<vector<int>>& vec2d) {
// Initialize your data structure here
ptr_vec2d = &vec2d;
hasNext();
}
int next() {
hasNext();
return (*ptr_vec2d)[i][j++];
}
bool hasNext() {
while (i < ptr_vec2d->size() && j == (*ptr_vec2d)[i].size()) {
++i;
j = 0;
}
return i < ptr_vec2d->size();
}
};
/**
* Your Vector2D object will be instantiated and called as such:
* Vector2D i(vec2d);
* while (i.hasNext()) cout << i.next();
*/Analysis
Last updated