// Scott R. Shannon. 13th October 2019. Java code to produce the sequence A328342 import java.util.ArrayList; import java.util.HashMap; public class A328342 { static ArrayList sequence = new ArrayList<>(); static int TOTVALS = 200; static HashMap> saveIndex = new HashMap<>(); static int lastVal, nextVal; static int maxVal=0,minVal=0; public static void main(String[] argv) { sequence.add(0); sequence.add(0); sequence.add(1); sequence.add(0); sequence.add(1); sequence.add(2); lastVal = sequence.get(sequence.size()-1); ArrayList zeroValues = new ArrayList<>(); zeroValues.add(1); zeroValues.add(3); saveIndex.put(0, zeroValues); ArrayList oneValues = new ArrayList<>(); oneValues.add(2); oneValues.add(4); saveIndex.put(1, oneValues); for (int i=0;i indexes = saveIndex.get(lastVal); if (indexes.size()==2) { nextVal = (i - indexes.get(1)) - (indexes.get(1) - indexes.get(0)); indexes.remove(0); indexes.add(i); saveIndex.put(lastVal,indexes); } else if (indexes.size()==1) { nextVal = i - indexes.get(0); indexes.add(i); saveIndex.put(lastVal,indexes); } else throw new RuntimeException("We should not get here 1!"); } else { ArrayList newVal = new ArrayList<>(); newVal.add(i); saveIndex.put(lastVal,newVal); nextVal = 0; } sequence.add(nextVal); if (nextVal>maxVal) maxVal = nextVal; if (nextVal=minVal;--i) if (!saveIndex.containsKey(i)) { System.out.println("Max - not present: "+i); break; } } }