sequence
unknown
java
3 years ago
1.8 kB
7
Indexable
package com.company;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Integer[] integers = {18, 26, 18, 24, 24, 20, 22};
Arrays.sort(integers);
List<List<Integer>> seqs = new ArrayList<>();
if (integers.length <= 2) {
seqs.add(Arrays.asList(integers));
}
for (int i = 0; i < integers.length; i++) {
List<Integer> sequence = new LinkedList<>();
boolean newSequence = true;
int r = 0;
int lastFromSeq = integers[i];
for (int j = i; j < integers.length - 1; j++) {
int second = integers[j + 1];
if (newSequence) {
sequence.add(lastFromSeq);
r = second - lastFromSeq;
newSequence = false;
}
if (second - lastFromSeq == r) {
lastFromSeq = second;
sequence.add(second);
}
}
seqs.add(sequence);
}
printLongest(seqs);
}
private static void printLongest(List<List<Integer>> seqs) {
Map<Integer, List<List<Integer>>> groupedBySize = seqs.stream().collect(Collectors.groupingBy(List::size));
TreeMap<Integer, List<List<Integer>>> sortedBySize = new TreeMap<>(groupedBySize);
Entry<Integer, List<List<Integer>>> lastEntry = sortedBySize.lastEntry();
System.out.println(lastEntry);
}
}
Editor is loading...