Suppose you have a Iterator class with has_next()
and get_next()
methods.
Please design and implement a ZigzagIterator class as a wrapper of two iterators.
For example, given two iterators:
i0 = [1,2,3,4]
i1 = [5,6]
ZigzagIterator it(i0, i1); while(it.has_next()) { print(it.get_next()); }
The output of the above pseudocode would be [1,5,2,6,3,4]
.
Note: For Java solution we will use JDK's Iterator class, so the methods would be hasNext()
and next()
.
public class ZigzagIterator { Iterator i0, i1; Iterator it; public ZigzagIterator(Iterator i0, Iterator i1) { this.i0 = i0; this.i1 = i1; this.it = i0.hasNext()? i0:i1; } public boolean has_next() { return it.hasNext(); } public int get_next() { int val = (Integer)it.next(); if(it == i0 && i1.hasNext()) it = i1; else if(it == i1 && i0.hasNext()) it = i0; return val; } }
第二种解法,这个方便解有多个Iterator的情况,也就是followup的问题:
class ZigzagIterator { private: vector<Iterator> vec; vector<Iterator>::iterator it; public: ZigzagIterator(Iterator& i0, Iterator& i1) { vec = {i0, i1}; it = vec.begin(); while(!(*it).has_next()) it++; } bool has_next() { return (*it).has_next(); } int get_next() { auto prev = it; int val = (*it).get_next(); do { if(++it == vec.end()) it = vec.begin(); } while(!(*it).has_next() && it != prev); return val; } };
相关推荐
带有之字转向峰值价格标签的 Boa_ZigZag 指标。
zigzag代码matlab 之字形 基于Matlab的JPEG算法中的Z字形扫描 之字形扫描 量化后,DC 系数与 63 个 AC 系数分开处理。 DC 系数是原始 64 个图像样本的平均值的度量。 由于相邻 8×8 块的 DC 系数之间通常存在很强的...
leetcode 2 代码挑战 之字形转换 字符串"PAYPALISHIRING"在给定的行数上以锯齿形图案书写,如下所示:(您可能希望以固定字体显示此图案以获得更好的可读性) P A H N A ...编写将接受一个字符串并在给定行数的情况下...
s function method combined with the density functional theory, we investigate the electron and spin transport properties of carbon chains covalently connected with zigzag-edged graphene electrodes at ...
基于 RSI 的最简单的 EA 交易。
可以测量所有加入 ZigZag breaks的部分,其结果将以点的形式给出。
zzf智能交易使用 ZIGZAG-FRACTALS 在小时时间图表中先前柱的 high-low 预测当天趋势2
实现Varint + ZigZag的编解码过程,里面有我自己对Vint编解码实现的算法 ,VInt编码为Varint编码和ZigZag编码的结合,为一种将64位二进制编码的有符号整型编码在最多10字节中的编码方式。Varint编码为一种将64位二...
Zigzag指标是在价格点连接重要波峰和波谷的一系列线段。
2-72 Color zigzag template 1.0.zip项目unity源码下载2-72 Color zigzag template 1.0.zip项目unity源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
ZIGZAG突破交易策略_V1_zigzag指标_Zigzag突破开仓策略_源码.rar.rar
zigzag算法的python版本,支持非正方形图像的zigzag列表生成,包含ZigZag()和deZigZag()函数,后者可实现原图重组。
An injection seeding single-frequency electro-optical Q-switched Nd:YAG laser is used as an oscillator, and a conductively cooled Nd:YAG zigzag slab with a bounce-pumped architecture is utilized as a...
另一个版本的 zigzag,利用简单代码修正判断峰值。
使用 IntDZBP(int delta-zigzag 二进制打包)。 import net.kaoriya.omusubi.IntDZBP ; // Copress. byte [] compressed = IntDZBP . toBytes( new int [] { 0 , 1 , 2 , ... }); // Decompress. int [] ...
ZigZag indicator tracks and connects extreme points of the chart, the distance between these points.
ZIGZAG突破交易策略_V1_zigzag指标_Zigzag突破开仓策略_zigzag_zigzag突破_突破_源码.zip
自己编写zigzag算法的matlab实现
利用verilog编码实现输入4*4矩阵块数据的zigzag扫描1*16数据输出,压缩包包括verilog代码以及testbench仿真代码,简单易行,亲测可用。