Exemplo n.º 1
0
 public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
   // Start typing your Java solution below
   // DO NOT write main() function
   Collections.sort(
       intervals,
       new Comparator<Interval>() {
         public int compare(Interval a, Interval b) {
           return new Integer(a.start).compareTo(new Integer(b.start));
         }
       });
   ArrayList<Interval> res = new ArrayList<Interval>();
   if (intervals.size() == 0) return res;
   Interval first = new Interval(intervals.get(0).start, intervals.get(0).end);
   if (intervals.size() == 1) {
     res.add(first);
     return res;
   }
   int i = 1;
   while (i < intervals.size()) {
     if (intervals.get(i).start > first.end) {
       res.add(first);
       first = intervals.get(i);
     } else if (intervals.get(i).end > first.end) {
       first.end = intervals.get(i).end;
     }
     i++;
   }
   res.add(first);
   return res;
 }
Exemplo n.º 2
0
  public void addNum(int val) {
    if (hash.contains(val)) return;
    hash.add(val);

    Interval tmp = new Interval(val, val);

    Interval greater = set.ceiling(tmp);
    Interval smaller = set.floor(tmp);

    if (greater != null) {
      // System.out.println("greater:"+greater.start+" "+greater.end+" val:"+val);
      if (greater.start == val + 1) {
        greater.start = val;
        merge(smaller, greater);

        return;
      }
    }
    if (smaller != null) {
      // System.out.println("smaller:"+smaller.start+" "+smaller.end+" val:"+val);
      if (smaller.end == val - 1) {
        smaller.end = val;
        merge(smaller, greater);
        return;
      }
    }
    set.add(tmp);
    // for(Interval I : set){
    //     System.out.print(I.start+" "+I.end+" ");
    // }
    // System.out.println();
  }
 public void testConstructor_RI_RI2() throws Throwable {
   Instant dt1 = new Instant(new DateTime(2004, 6, 9, 0, 0, 0, 0));
   Instant dt2 = new Instant(new DateTime(2005, 7, 10, 1, 1, 1, 1));
   Interval test = new Interval(dt1, dt2);
   assertEquals(dt1.getMillis(), test.getStartMillis());
   assertEquals(dt2.getMillis(), test.getEndMillis());
 }
 @Test
 public void forEachOnFromToInterval() {
   MutableList<Integer> result = Lists.mutable.of();
   Interval interval = Interval.oneTo(5);
   interval.forEach(CollectionAddProcedure.on(result));
   Assert.assertEquals(FastList.newListWith(1, 2, 3, 4, 5), result);
 }
 /**
  * compareTo
  *
  * @param that a {@link org.opennms.features.poller.remote.gwt.client.utils.Interval} object.
  * @return a int.
  */
 public int compareTo(final Interval that) {
   if (that == null) return -1;
   return new CompareToBuilder()
       .append(this.getStartMillis(), that.getStartMillis())
       .append(this.getEndMillis(), that.getEndMillis())
       .toComparison();
 }
 // -----------------------------------------------------------------------
 public void testParse_noOffsetInString() throws Throwable {
   DateTime start = new DateTime(2010, 6, 30, 12, 30, ISOChronology.getInstance(PARIS));
   DateTime end = new DateTime(2010, 7, 1, 14, 30, ISOChronology.getInstance(PARIS));
   assertEquals(new Interval(start, end), Interval.parse("2010-06-30T12:30/2010-07-01T14:30"));
   assertEquals(new Interval(start, end), Interval.parse("2010-06-30T12:30/P1DT2H"));
   assertEquals(new Interval(start, end), Interval.parse("P1DT2H/2010-07-01T14:30"));
 }
 @Test
 public void toFastList() {
   Interval interval = Interval.evensFromTo(0, 10);
   FastList<Integer> toList = (FastList<Integer>) interval.toList();
   Verify.assertStartsWith(toList, 0, 2, 4, 6, 8, 10);
   Verify.assertSize(6, toList);
 }
Exemplo n.º 8
0
 /**
  * Refine interval.
  *
  * @param iv root isolating interval with f(left) * f(right) &lt; 0.
  * @param f univariate polynomial, non-zero.
  * @param eps requested interval length.
  * @return a new interval v such that |v| &lt; eps.
  */
 public Interval<C> refineInterval(Interval<C> iv, GenPolynomial<C> f, C eps) {
   if (f == null || f.isZERO() || f.isConstant() || eps == null) {
     return iv;
   }
   if (iv.length().compareTo(eps) < 0) {
     return iv;
   }
   RingFactory<C> cfac = f.ring.coFac;
   C two = cfac.fromInteger(2);
   Interval<C> v = iv;
   while (v.length().compareTo(eps) >= 0) {
     C c = v.left.sum(v.right);
     c = c.divide(two);
     // System.out.println("c = " + c);
     // c = RootUtil.<C>bisectionPoint(v,f);
     if (PolyUtil.<C>evaluateMain(cfac, f, c).isZERO()) {
       v = new Interval<C>(c, c);
       break;
     }
     Interval<C> iv1 = new Interval<C>(v.left, c);
     if (signChange(iv1, f)) {
       v = iv1;
     } else {
       v = new Interval<C>(c, v.right);
     }
   }
   return v;
 }
 @Test
 public void reverseInjectIntoOnFromToByInterval() {
   Interval interval = Interval.oneTo(5);
   Assert.assertEquals(Integer.valueOf(20), interval.reverseInjectInto(5, AddFunction.INTEGER));
   Assert.assertEquals(
       Integer.valueOf(20), interval.reverseThis().reverseInjectInto(5, AddFunction.INTEGER));
 }
 @Test
 public void collectOnFromToInterval() {
   Interval interval = Interval.oneTo(5);
   LazyIterable<String> result = interval.collect(String::valueOf);
   Verify.assertIterableSize(5, result);
   Verify.assertContainsAll(result, "1", "5");
 }
 @Test
 public void forEachWithExecutorInReverse() {
   MutableList<Integer> result = Lists.mutable.of();
   Interval interval = Interval.fromToBy(5, 1, -1);
   interval.forEach(CollectionAddProcedure.on(result), Executors.newSingleThreadExecutor());
   Assert.assertEquals(FastList.newListWith(5, 4, 3, 2, 1), result);
 }
 @Test
 public void forEachWithExecutor() {
   MutableList<Integer> result = Lists.mutable.of();
   Interval interval = Interval.oneTo(5);
   interval.forEach(CollectionAddProcedure.on(result), Executors.newSingleThreadExecutor());
   Assert.assertEquals(FastList.newListWith(1, 2, 3, 4, 5), result);
 }
Exemplo n.º 13
0
 public ArrayList<Interval> insert(ArrayList<Interval> inter, Interval newIn) {
   // Start typing your Java solution below
   // DO NOT write main() function
   ArrayList<Interval> a = new ArrayList<Interval>();
   boolean flag = false;
   for (Interval in : inter) {
     if (a.size() > 0 && in.start <= a.get(a.size() - 1).end) {
       Interval tail = a.remove(a.size() - 1);
       tail.end = max(in.end, tail.end);
       a.add(tail);
     } else a.add(in);
     if (!flag && newIn.start <= a.get(a.size() - 1).end) {
       flag = true;
       Interval tail = a.remove(a.size() - 1);
       if (newIn.end >= tail.start) {
         tail.start = min(tail.start, newIn.start);
         tail.end = max(tail.end, newIn.end);
         a.add(tail);
       } else {
         a.add(newIn);
         a.add(tail);
       }
     }
   }
   if (!flag) a.add(newIn);
   return a;
 }
Exemplo n.º 14
0
  /**
   * Creates (if not already existing) and returns the partition in which the instant,value should
   * be written. instant can be invalid (in case value only or no partitioning) value can be null
   * (in case
   *
   * @return a Partition
   */
  public synchronized Partition createAndGetPartition(long instant, Object value)
      throws IOException {
    Partition partition;
    if (partitioningSpec.timeColumn != null) {
      if ((pcache == null) || (pcache.start > instant) || (pcache.getEnd() <= instant)) {

        Entry<Long, Interval> entry = intervals.floorEntry(instant);
        if ((entry != null) && (instant < entry.getValue().getEnd())) {
          pcache = entry.getValue();
        } else { // no partition in this interval.
          PartitionInfo pinfo = partitioningSpec.timePartitioningSchema.getPartitionInfo(instant);
          pcache = new Interval(pinfo.partitionStart, pinfo.partitionEnd);
          intervals.put(pcache.start, pcache);
        }
      }
    }
    partition = pcache.get(value);
    if (partition == null) {
      if (partitioningSpec.timeColumn != null) {
        PartitionInfo pinfo = partitioningSpec.timePartitioningSchema.getPartitionInfo(instant);
        partition = createPartition(pinfo, value);
      } else {
        partition = createPartition(value);
      }
      pcache.add(value, partition);
    }
    return partition;
  }
 @Test
 public void toSet() {
   Interval interval = Interval.evensFromTo(0, 10);
   MutableSet<Integer> set = interval.toSet();
   Verify.assertContainsAll(set, 0, 2, 4, 6, 8, 10);
   Verify.assertSize(6, set);
 }
Exemplo n.º 16
0
  public static void main(String[] args) {
    int[] a = {100, 80, 60, 50, 40, 35, 95};
    int c = 0, n = a.length;
    Interval[] intervals = new Interval[n / 2 + 1];
    int i = 0;

    while (true) {
      while (i < n - 1 && a[i + 1] <= a[i]) i++;
      if (i >= n - 1) break;
      int min = i++;
      while (i < n && a[i] >= a[i - 1]) i++;
      int max = i - 1;

      Interval temp = new Interval();
      intervals[c] = temp;
      temp.buy = a[min];
      temp.sell = a[max];

      c++;
    }

    if (c == 0) {
      System.out.println("No such possibility exist");
    } else {
      for (Interval intrvl : intervals) {
        if (intrvl == null) break;
        System.out.print(intrvl);
      }
    }
  }
 @Test
 public void iterator() {
   Interval zero = Interval.zero();
   Iterator<Integer> zeroIterator = zero.iterator();
   Assert.assertTrue(zeroIterator.hasNext());
   Assert.assertEquals(Integer.valueOf(0), zeroIterator.next());
   Assert.assertFalse(zeroIterator.hasNext());
   Interval oneToFive = Interval.oneTo(5);
   Iterator<Integer> oneToFiveIterator = oneToFive.iterator();
   for (int i = 1; i < 6; i++) {
     Assert.assertTrue(oneToFiveIterator.hasNext());
     Assert.assertEquals(Integer.valueOf(i), oneToFiveIterator.next());
   }
   Verify.assertThrows(NoSuchElementException.class, (Runnable) oneToFiveIterator::next);
   Interval threeToNegativeThree = Interval.fromTo(3, -3);
   Iterator<Integer> threeToNegativeThreeIterator = threeToNegativeThree.iterator();
   for (int i = 3; i > -4; i--) {
     Assert.assertTrue(threeToNegativeThreeIterator.hasNext());
     Assert.assertEquals(Integer.valueOf(i), threeToNegativeThreeIterator.next());
   }
   Verify.assertThrows(
       NoSuchElementException.class, (Runnable) threeToNegativeThreeIterator::next);
   Verify.assertThrows(
       UnsupportedOperationException.class, () -> Interval.zeroTo(10).iterator().remove());
 }
Exemplo n.º 18
0
  /**
   * Invariant interval for algebraic number magnitude.
   *
   * @param iv root isolating interval for f, with f(left) * f(right) &lt; 0.
   * @param f univariate polynomial, non-zero.
   * @param g univariate polynomial, gcd(f,g) == 1.
   * @param eps length limit for interval length.
   * @return v with v a new interval contained in iv such that |g(a) - g(b)| &lt; eps for a, b in v
   *     in iv.
   */
  public Interval<C> invariantMagnitudeInterval(
      Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g, C eps) {
    Interval<C> v = iv;
    if (g == null || g.isZERO()) {
      return v;
    }
    if (g.isConstant()) {
      return v;
    }
    if (f == null || f.isZERO() || f.isConstant()) { // ?
      return v;
    }
    GenPolynomial<C> gp = PolyUtil.<C>baseDeriviative(g);
    // System.out.println("g  = " + g);
    // System.out.println("gp = " + gp);
    C B = magnitudeBound(iv, gp);
    // System.out.println("B = " + B);

    RingFactory<C> cfac = f.ring.coFac;
    C two = cfac.fromInteger(2);

    while (B.multiply(v.length()).compareTo(eps) >= 0) {
      C c = v.left.sum(v.right);
      c = c.divide(two);
      Interval<C> im = new Interval<C>(c, v.right);
      if (signChange(im, f)) {
        v = im;
      } else {
        v = new Interval<C>(v.left, c);
      }
      // System.out.println("v = " + v.toDecimal());
    }
    return v;
  }
  @Test
  public void take() {
    Assert.assertEquals(FastList.newListWith(1, 2), Interval.fromTo(1, 3).take(2));
    Assert.assertEquals(FastList.newListWith(1, 2), Interval.fromTo(1, 2).take(3));

    Verify.assertThrows(IllegalArgumentException.class, () -> Interval.fromTo(1, 3).take(-1));
  }
  public int minMeetingRooms(Interval[] intervals) {
    if (intervals == null || intervals.length == 0) return 0;
    Arrays.sort(
        intervals,
        new Comparator<Interval>() {
          public int compare(Interval a, Interval b) {
            return a.start - b.start;
          }
        });
    PriorityQueue<Interval> heap =
        new PriorityQueue<Interval>(
            intervals.length,
            new Comparator<Interval>() {
              public int compare(Interval a, Interval b) {
                return a.end - b.end;
              }
            });
    heap.offer(intervals[0]);
    for (int i = 1; i < intervals.length; i++) {
      Interval poll = heap.poll();

      if (intervals[i].start >= poll.end) poll.end = intervals[i].end;
      else heap.offer(intervals[i]);
      heap.offer(poll);
    }
    return heap.size();
  }
  @Test
  public void drop() {
    Assert.assertEquals(FastList.newListWith(3, 4), Interval.fromTo(1, 4).drop(2));
    Verify.assertIterableEmpty(Interval.fromTo(1, 2).drop(3));

    Verify.assertThrows(IllegalArgumentException.class, () -> Interval.fromTo(1, 3).drop(-1));
  }
 public void testConstructor_long_long2() throws Throwable {
   DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
   Interval test = new Interval(dt1.getMillis(), dt1.getMillis());
   assertEquals(dt1.getMillis(), test.getStartMillis());
   assertEquals(dt1.getMillis(), test.getEndMillis());
   assertEquals(ISOChronology.getInstance(), test.getChronology());
 }
Exemplo n.º 23
0
 // the given list is sorted
 // remove the duplicates of intervals with the same start
 // the rule is like this: keep the longest length interval
 private List<Interval> removeDuplicateStart() {
   List<Interval> list = getIntervalListFromETask();
   if (null == list) {
     return null;
   }
   List<Interval> res = new ArrayList<Interval>();
   int sz = list.size();
   int i = 0;
   while (i < sz) {
     int j = i + 1;
     Interval longestInterval = list.get(i);
     int maxDuration = (int) (longestInterval.getEnd() - longestInterval.getStart());
     while (j < sz && list.get(j).getStart() == list.get(i).getStart()) {
       int curDuration = (int) (list.get(j).getEnd() - list.get(j).getStart());
       if (curDuration > maxDuration) {
         maxDuration = curDuration;
         longestInterval = list.get(j);
       }
       j++;
     }
     res.add(longestInterval);
     i = j;
   }
   return res;
 }
Exemplo n.º 24
0
 @Override
 public List<Double[]> getValues(Interval interval) {
   List<Double[]> result = new ArrayList<Double[]>();
   for (Interval<Double[]> i : intervalTree.search(interval))
     result.add(new Double[] {i.getLow(), i.getHigh()});
   return result;
 }
Exemplo n.º 25
0
    @Override
    public boolean hasNext() {
      if (next != null) return true;
      next = new ArrayList<Partition>();

      while (it.hasNext()) {
        Entry<Long, Interval> entry = it.next();
        Interval intv = entry.getValue();
        if (jumpToStart && (intv.getEnd() <= start)) {
          continue;
        } else {
          jumpToStart = false;
        }
        if (partitioningSpec.type == _type.TIME) {
          next.add(intv.partitions.values().iterator().next());
        } else {
          for (Partition p : intv.partitions.values()) {
            if ((partitionValueFilter == null) || (partitionValueFilter.contains(p.getValue()))) {
              next.add(p);
            }
          }
        }
        if (!next.isEmpty()) {
          break;
        }
      }
      if (next.isEmpty()) {
        next = null;
        return false;
      } else {
        return true;
      }
    }
  public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {

    ArrayList<Interval> result = new ArrayList<Interval>();

    int p = 0;
    while (p < intervals.size()) {
      if (intervals.get(p).end < newInterval.start) {
        result.add(intervals.get(p));
        p++;
      } else {
        newInterval.start = Math.min(newInterval.start, intervals.get(p).start);
        break;
      }
    }

    result.add(newInterval);

    while (p < intervals.size()) {
      if (intervals.get(p).start > newInterval.end) {
        result.add(intervals.get(p));
      } else if (intervals.get(p).end >= newInterval.end
          && intervals.get(p).start <= newInterval.end) {
        newInterval.end = Math.max(newInterval.end, intervals.get(p).end);
      }
      p++;
    }

    return result;
  }
  public void testConstructor_Object6() throws Throwable {
    IntervalConverter oldConv =
        ConverterManager.getInstance().getIntervalConverter(new Interval(0L, 0L));
    IntervalConverter conv =
        new IntervalConverter() {
          public boolean isReadableInterval(Object object, Chronology chrono) {
            return false;
          }

          public void setInto(ReadWritableInterval interval, Object object, Chronology chrono) {
            interval.setChronology(chrono);
            interval.setInterval(1234L, 5678L);
          }

          public Class<?> getSupportedType() {
            return ReadableInterval.class;
          }
        };
    try {
      ConverterManager.getInstance().addIntervalConverter(conv);
      Interval base = new Interval(-1000L, 1000L);
      Interval test = new Interval(base);
      assertEquals(1234L, test.getStartMillis());
      assertEquals(5678L, test.getEndMillis());
    } finally {
      ConverterManager.getInstance().addIntervalConverter(oldConv);
    }
  }
  public void testConstructor_Object5() throws Throwable {
    IntervalConverter oldConv = ConverterManager.getInstance().getIntervalConverter("");
    IntervalConverter conv =
        new IntervalConverter() {
          public boolean isReadableInterval(Object object, Chronology chrono) {
            return false;
          }

          public void setInto(ReadWritableInterval interval, Object object, Chronology chrono) {
            interval.setChronology(chrono);
            interval.setInterval(1234L, 5678L);
          }

          public Class<?> getSupportedType() {
            return String.class;
          }
        };
    try {
      ConverterManager.getInstance().addIntervalConverter(conv);
      DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
      DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
      Interval test = new Interval(dt1.toString() + '/' + dt2.toString());
      assertEquals(1234L, test.getStartMillis());
      assertEquals(5678L, test.getEndMillis());
    } finally {
      ConverterManager.getInstance().addIntervalConverter(oldConv);
    }
  }
 // -----------------------------------------------------------------------
 public void testConstructor_Object1() throws Throwable {
   DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
   DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
   Interval test = new Interval(dt1.toString() + '/' + dt2.toString());
   assertEquals(dt1.getMillis(), test.getStartMillis());
   assertEquals(dt2.getMillis(), test.getEndMillis());
 }
 public void testConstructor_RI_RI_instant() throws Throwable {
   Instant dt1 = new Instant(12345678L);
   Instant dt2 = new Instant(22345678L);
   Interval test = new Interval(dt1, dt2);
   assertEquals(12345678L, test.getStartMillis());
   assertEquals(22345678L, test.getEndMillis());
   assertEquals(ISOChronology.getInstanceUTC(), test.getChronology());
 }