Я решаю задачу algorihmi c на LeetCode, вот она:
Для данного массива поверните массив вправо на k шагов, где k неотрицательно.
Последующие действия: постарайтесь найти как можно больше решений, существует как минимум 3 различных способа решения этой проблемы. Не могли бы вы сделать это на месте с дополнительным пространством O (1)?
Пример 1:
Ввод: nums = [1,2,3,4,5 , 6,7], k = 3
Вывод: [5,6,7,1,2,3,4]
Пояснение:
поворот на 1 шаг, чтобы вправо: [7,1,2,3,4,5,6]
повернуть на 2 шага вправо: [6,7,1,2,3,4,5]
поворот на 3 шага вправо: [5,6,7,1,2,3,4]
Пример 2: Ввод: nums = [-1, -100, 3,99], k = 2
Вывод: [3,99, -1, -100]
Пояснение:
поворот на 1 шаг вправо: [99 , -1, -100,3]
повернуть на 2 шага вправо: [3,99, -1, -100]
var rotate = function(nums, k) {
if(k === 0){
return nums;
} else{
const leftPart = nums.slice(0, nums.length - k);
const rightPart = nums.slice(nums.length - k);
const res = rightPart.concat(leftPart);
return res;
}};
Что не так с моим решением, ребята?