Ввод: nums = [100,-2,7,13], k = 0
Вывод: [100,-2,7,13]
Пример 3:
Ввод: nums = [1,2,3], k = 40
Вывод: [3,1,2]
Ограничения:
len(nums) >= 1
public class Solution
{
public static void RotateSubarray(List<int> nums, int i, int j)
{
// nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1;
while (i < j)
{
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
i += 1;
j -= 1;
}
}
public static List<int> Shift(List<int> nums, int k)
{
k = k % nums.Count;
RotateSubarray(nums, 0, nums.Count);
RotateSubarray(nums, 0, k);
RotateSubarray(nums, k, nums.Count);
return nums;
}
}
#include <vector>
using namespace std;
void rotateSubarray(vector<int>& nums, int i, int j) {
// nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1;
while (i < j) {
swap(nums[i], nums[j]);
i += 1;
j -= 1;
}
}
vector<int> shift(vector<int>& nums, int k) {
k = k % nums.size();
rotateSubarray(nums, 0, nums.size());
rotateSubarray(nums, 0, k);
rotateSubarray(nums, k, nums.size());
return nums;
}
package main
func rotateSubarray(nums []int, i int, j int) {
// nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1
for i < j {
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
}
}
func shift(nums []int, k int) []int {
k = k % len(nums)
rotateSubarray(nums, 0, len(nums))
rotateSubarray(nums, 0, k)
rotateSubarray(nums, k, len(nums))
return nums
}
package main
func rotateSubarray(nums []int, i int, j int) {
// nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1
for i < j {
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
}
}
func shift(nums []int, k int) []int {
k = k % len(nums)
rotateSubarray(nums, 0, len(nums))
rotateSubarray(nums, 0, k)
rotateSubarray(nums, k, len(nums))
return nums
}
import java.util.*;
public class Solution {
public void rotateSubarray(List<Integer> nums, int i, int j) {
// nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1;
while (i < j) {
Collections.swap(nums, i, j);
i += 1;
j -= 1;
}
}
public List<Integer> shift(List<Integer> nums, int k) {
k = k % nums.size();
rotateSubarray(nums, 0, nums.size());
rotateSubarray(nums, 0, k);
rotateSubarray(nums, k, nums.size());
return nums;
}
}
from typing import *
def rotate_subarray(nums: List[int], i: int, j: int):
# nums=[1,2,3,4], i=1, j=3 -> [1,3,2,4]
j -= 1
while i < j:
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
def shift(nums: List[int], k: int) -> List[int]:
k = k % len(nums)
rotate_subarray(nums, 0, len(nums))
rotate_subarray(nums, 0, k)
rotate_subarray(nums, k, len(nums))
return nums