Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit de4a50d

Browse files
committed
change deprecated usage - SegmentTreeByArrayImplementation() in RangeMinimumQueryUsingSegmentTree
1 parent f5aa0ee commit de4a50d

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/main/java/org/psjava/algo/sequence/rmq/RangeMinimumQueryUsingSegmentTree.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package org.psjava.algo.sequence.rmq;
22

33
import java.util.Comparator;
4+
import java.util.List;
5+
import java.util.stream.Collectors;
6+
import java.util.stream.IntStream;
47

58
import org.psjava.ds.array.PSArray;
6-
import org.psjava.ds.array.MutableArray;
7-
import org.psjava.ds.array.MutableArrayFactory;
89
import org.psjava.ds.tree.segmenttree.SegmentTree;
910
import org.psjava.ds.tree.segmenttree.SegmentTreeByArrayImplementation;
1011
import org.psjava.util.Assertion;
11-
import org.psjava.util.ZeroTo;
1212

1313
/**
1414
* Time complexity for preprocessing: Time complexity for constructing segment tree. known best is, O(n)
@@ -22,10 +22,9 @@ public class RangeMinimumQueryUsingSegmentTree {
2222
public static final RangeMinimumQuery INSTANCE = new RangeMinimumQuery() {
2323
@Override
2424
public <T> RangeMinimumQuerySession preprocess(final PSArray<T> a, final Comparator<T> comp) {
25-
MutableArray<Integer> indexes = MutableArrayFactory.create(a.size(), 0);
26-
for (int i : ZeroTo.get(a.size()))
27-
indexes.set(i, i);
28-
final SegmentTree<Integer> tree = new SegmentTreeByArrayImplementation<>(indexes, (i1, i2) -> RangeMinimumQueryUtil.selectSmallestIndex(a, i1, i2, comp));
25+
List<Integer> init = IntStream.range(0, a.size())
26+
.boxed().collect(Collectors.toList());
27+
final SegmentTree<Integer> tree = new SegmentTreeByArrayImplementation<>(init, (i1, i2) -> RangeMinimumQueryUtil.selectSmallestIndex(a, i1, i2, comp));
2928
return (start, end) -> {
3029
Assertion.ensure(start < end);
3130
return tree.query(start, end);

0 commit comments

Comments
 (0)