Ejemplo n.º 1
0
        public int NumberOfStepsBetweenFirstDuplicate(int[] initialBlocks)
        {
            MemoryModule memoryModule = new MemoryModule(initialBlocks);
            int          steps        = 0;

            bool noDuplicateState = true;

            while (noDuplicateState)
            {
                steps++;
                memoryModule.Reallocate();
                noDuplicateState = memoryModule.NoDuplicateState();
            }

            int stepOfFirstDuplicate = memoryModule.IndexOfFirstDuplicate();

            return(steps - (stepOfFirstDuplicate + 1));
        }