251. Flatten 2D Vector
251. Flatten 2D Vector Implement an iterator to flatten a 2d vector. Example: Input: 2d vector = [ [1,2], [3], [4,5,6] ] Output: [1,2,3,4,5,6] Explanation: By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,2,3,4,5,6]. public class Vector2D implements Iterator<Integer> { List<Integer> list = new ArrayList<>(); int curr = 0; // index of next integer public Vector2D(List<List<Integer>> vec2d) { for (List<Integer> vec : vec2d) { for (int i = 0; i < vec.size(); i++) { list.add(vec.get(i)); } } } @Override public Integer next() { return list.get(curr++); } @Override public boolean hasNext() { return curr<list.size(); } public void remove() { list.remove(curr-1); } }
posted on 2018-11-06 08:15 猪猪🐷 阅读(67) 评论(0) 收藏 举报
浙公网安备 33010602011771号