Это интересная проблема, с которой я столкнулся, и я чувствую, что она должна иметь элегантное, доказуемое решение, но я не совсем смог ее получить. . Я определил это следующим образом:
Определите функцию, которая принимает в качестве входных данных массив из 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 с другой.
Мне кажется, это тоже был бы отличный вопрос для интервью.