sequence
unknown
java
2 years ago
1.8 kB
3
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...