网站建站大约多少钱,信息流广告是什么意思?,贵阳有做网站的公司吗,业之峰装饰公司口碑文章目录1. 题目2. 解题1. 题目
给出两个一维的向量#xff0c;请你实现一个迭代器#xff0c;交替返回它们中间的元素。
示例:
输入:
v1 [1,2]
v2 [3,4,5,6]
输出: [1,3,2,4,5,6]解析: 通过连续调用 next 函数直到 hasNext 函数返回 false#xff0c;next 函数返回值的…
文章目录1. 题目2. 解题1. 题目
给出两个一维的向量请你实现一个迭代器交替返回它们中间的元素。
示例:
输入:
v1 [1,2]
v2 [3,4,5,6]
输出: [1,3,2,4,5,6]解析: 通过连续调用 next 函数直到 hasNext 函数返回 falsenext 函数返回值的次序应依次为: [1,3,2,4,5,6]。拓展假如给你 k 个一维向量呢你的代码在这种情况下的扩展性又会如何呢?拓展声明“锯齿” 顺序对于 k 2 的情况定义可能会有些歧义。所以假如你觉得 “锯齿” 这个表述不妥也可以认为这是一种 “循环”。例如
输入:
[1,2,3]
[4,5,6,7]
[8,9]
输出: [1,4,8,2,5,9,3,6,7].来源力扣LeetCode 链接https://leetcode-cn.com/problems/zigzag-iterator 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class ZigzagIterator {mapint, vectorint m;unordered_mapint,int idx;int total 0;mapint, vectorint::iterator it;
public:ZigzagIterator(vectorint v1, vectorint v2) {m[0] v1;m[1] v2;it m.begin();idx[0] 0;idx[1] 0;total v1.size()v2.size();}int next() {if(!hasNext())return -1;if(it m.end())it m.begin();//循环if(idx[it-first] it-second.size()){ //该数组指针到结尾了m.erase(it);//删除该数组移动到下一个数组return next();}int val it-second[idx[it-first]];//答案值idx[it-first];//数组遍历位置1it;//去下一个数组total--;//总数-1return val;}bool hasNext() {return total;}
};12 ms 8.6 MB 长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步