A simple array of integers is given. The problem is to detect if a pattern is repeatedly occurring in the array, and find the length of that pattern.
For example, for
{19, 6, 19, 6, 19, 6, 19, 6, 19, 6, 19, 6}
pattern {19, 6}
should be detected and its length is 2
.
For
{73, 7, 4, 73, 7, 4, 73, 7, 4, 73, 7, 4, 73, 7}
pattern {73, 7, 4}
should be detected and its length is 3
. (at the end of the array there need not be the complete pattern, but the pattern should start at the beginning of the array)
For
{73, 7, 4, 7, 2, 6, 7, 2, 7, 73, 9, 17, 7, 7}
the whole array is the pattern and its length is 14
.
Related links
SO question on cycle detectionSO question on cycle detection