Учитывая 2 интервала с int start, int end и логическим состоянием, объедините 2 интервала, как показано ниже
i1 и i2 равны 2 ArrayList<Intreval>
, а res должен содержать выходные данные комбинированных интервалов.
Пример:
-INF --------- 6 ------- 10 --------- 30 --------- INF
F T T F
-INF --- 5 ------------------- 20 --------- 35 ---- INF
T T F F
ВЫВОД:
-INF ---5 ---- 6 -------- 10 -- 20 ---- 30 -- 35 --- INF
F F T T F F F
Код создает i1 и i2, которые ArrayList<Intervals>
.
i1 has [[-INF,6,false],[6,10,true],[10,30,true],[30,INF,false]]
и
i2 has [[-INF,5,true],[5,20,true],[20,35,false],[35,INF,false]]
и
res should contain [[-INF,5,false],[5,6,false],[6,10,true],[10,20,true],[20,30,false],[30,35,false],[35,INF,false]]
Код:
Class Interval
{
int start;
int end;
boolean status;
public Interval(int start, int end, boolean status)
{
this.start = start;
this.end = end;
this.status = status;
}
}
class MyCode {
public static void main (String[] args) {
ArrayList<Interval> i1 = new ArrayList<Interval>();
i1.add(new Interval(Integer.MIN_VALUE, 6, false));
i1.add(new Interval(6,10,true));
i1.add(new Interval(10,30,true));
i1.add(new Interval(30,Integer.MAX_VALUE,false));
ArrayList<Interval> i2 = new ArrayList<Interval>();
i2.add(new Interval(Integer.MIN_VALUE, 5, true));
i2.add(new Interval(5,20,true));
i2.add(new Interval(20,35,false));
i2.add(new Interval(35,Integer.MAX_VALUE,false));
int i=0, j=0;
ArrayList<Interval> res = new ArrayList<Interval>();
}
}