Интервал между элементами в круговом массиве

Это интересная проблема, с которой я столкнулся, и я чувствую, что она должна иметь элегантное, доказуемое решение, но я не совсем смог ее получить. . Я определил это следующим образом:

Определите функцию, которая принимает в качестве входных данных массив из N элементов и положительное целое число R и возвращает циклический массив (или массив, который вы рассматривать как круговой), где никакие два одинаковых элемента не меньше, чем R обособленно или нуль, если такой порядок невозможен.

Итак, f([a,b,d,c,a,d,k,a,d], 3)может вернуть [a,b,d,a,k, d,a,c,d], но f([a,b,d,c,a,d,k,a,d,a,a], 3)вернет ноль. Я определяю два элемента как R обособленно, если между ними есть R-1элементы, поэтому в массиве [x,a,b,y], xи yотличаются друг от друга на 3 с одной стороны и на 0 с другой.

Мне кажется, это тоже был бы отличный вопрос для интервью.

5
задан PengOne 13 March 2012 в 20:36
поделиться