Finding Sequences

by asemahle

JavaScript

let findMinSeq = (seq) => {
	if (!seq.length) return null; //you gotta give me more numbers!
  
  let currentPattern = [seq[0]];
  let nextPossiblePattern = [seq[0]];
  for (let i = 1; i < seq.length; i++) {
  	nextPossiblePattern.push(seq[i]);
    
    if (currentPattern[i % (currentPattern.length)] != seq[i]) {
      // the pattern failed!
      currentPattern = nextPossiblePattern.slice();
    }
  }
  return currentPattern;
}

// Put in your own sequence to see if it works! Open the dev console (f12 on windows in chrome) to see output
let seq = [1,2,1,2,1,2,1,2,3,1,2,1,2,1,2,1,2,3,1,2,1,2,1,2,1,2,3];
console.log(findMinSeq(seq));