#540 Zigzag Iterator
来源:互联网 发布:网络系统集成前沿技术 编辑:程序博客网 时间:2024/06/07 05:43
题目描述:
Given two 1d vectors, implement an iterator to return their elements alternately.
Example
题目思路:Given two 1d vectors:
v1 = [1, 2]v2 = [3, 4, 5, 6]
By calling next repeatedly until hasNext returns false
, the order of elements returned by next should be: [1, 3, 2, 4, 5, 6]
.
这题的解法有很多。这里用了最土的方法:先将zigzag遍历完的结果存在一个数组中,每次call next()就调用一个element。空间代价是需要一个数组和一个index(始终指向下一个被call的element)。
My code (AC = 44ms):
class ZigzagIterator {public: /** * @param v1 v2 two 1d vectors */ vector<int> zigzag_list; // the list to store the zigzag elements int index; // the index indicating which element should be called next time ZigzagIterator(vector<int>& v1, vector<int>& v2) { // initialize your data structure here. int l1 = 0, l2 = 0; index = 0; while (l1 < v1.size() && l2 < v2.size()) { zigzag_list.push_back(v1[l1++]); zigzag_list.push_back(v2[l2++]); } while (l1 < v1.size()) { zigzag_list.push_back(v1[l1++]); } while (l2 < v2.size()) { zigzag_list.push_back(v2[l2++]); } } int next() { // Write your code here return zigzag_list[index++]; } bool hasNext() { // Write your code here return index < zigzag_list.size(); }};/** * Your ZigzagIterator object will be instantiated and called as such: * ZigzagIterator solution(v1, v2); * while (solution.hasNext()) result.push_back(solution.next()); * Ouptut result */
0 0
- #540 Zigzag Iterator
- Zigzag Iterator
- Zigzag Iterator
- Zigzag Iterator
- Zigzag Iterator
- Leetcode: Zigzag Iterator
- leetcode 281: Zigzag Iterator
- *LeetCode-Zigzag Iterator
- [LeetCode281]Zigzag Iterator
- [leetcode281]Zigzag Iterator
- LeetCode 281. Zigzag Iterator
- Leetcode Zigzag Iterator
- #541 Zigzag Iterator II
- LeetCode 271. Zigzag Iterator
- 281. Zigzag Iterator
- Zigzag Iterator ii
- Zigzag Iterator ii
- LeetCode 题解(272) : Zigzag Iterator
- Python学习笔记2
- 第三章--四大组件之一Service
- PHP 对象中static内存分配
- K closest points to a given point
- Python小程序——猜数字
- #540 Zigzag Iterator
- java Collections对数组排序
- Windows内核符号表学习总结
- springmvc 文件上传到服务器的固定目录中
- 2016.08.03随记
- 蓝牙4.0 BLE 广播包解析
- 根据所选的year 和 month 获得所有的周开始与结束
- RightsHelper(权限计算帮助类)
- IDEA构建Spark编程环境和用Scala实现PageRank算法