Этот вопрос от хакерранка. https://www.hackerrank.com/challenges/circular-array-rotation/problem
Ввод:
массив (int []) из n чисел
число (k) извращения 1> = k <= n </p>
массив (int []) размера m индексов повернутого массива
Вывод:массив (int []) размером m с элементами повернутого массива
Я решил это с помощью подхода поворота, который изменит положение элементов массива. Я пытался решить это без изменения исходного массива (путем математического манипулирования индексом повернутого массива). вот метод, который я написал, он работает для случаев использования, которые я использовал, но на хакерранке он показывает, что 1 тест не пройден.
private int[] withoutRotateArray(int[] input, int k, int[] checkIndex) {
for (int i = 0; i < checkIndex.length; i++) {
if(checkIndex[i] < k) {
checkIndex[i] = input[input.length - (k - checkIndex[i])];
} else {
checkIndex[i] = input[Math.abs(k - (checkIndex[i]))];
}
}
return checkIndex;
}
Может кто-нибудь помочь мне понять, что не так в моем методе?
Пример:
массив I / P [1,2,3,4,5]
число оборотов: 2
Контрольный индекс: [2,4]
массив O / P [1,3]