Leetcode 251 Solution
This article provides solution to leetcode question 251 (flatten-2d-vector)
Access this page by simply typing in "lcs 251" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/flatten-2d-vector
Solution
class Vector2D {
queue<pair<vector<int>::iterator, vector<int>::iterator>> q;
public:
Vector2D(vector<vector<int>>& vec2d) {
for (auto& vec : vec2d)
q.push(make_pair(vec.begin(), vec.end()));
}
int next() {
auto& pair = q.front();
return *pair.first++;
}
bool hasNext() {
while (q.empty() == false)
{
auto pair = q.front();
if (pair.first != pair.second)
return true;
q.pop();
}
return false;
}
};
/**
* Your Vector2D object will be instantiated and called as such:
* Vector2D i(vec2d);
* while (i.hasNext()) cout << i.next();
*/