欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode:旋转数组(c#)

程序员文章站 2022-04-28 09:55:48
...

题目内容

LeetCode:旋转数组(c#)

c#代码实现

实现方法1

public class Solution {
    public void Rotate(int[] nums, int k) {
        k %= nums.Length;
        if (k < 1) return;
        for (int i = 0; i < k; i++)
        {
            var temp = nums[nums.Length - 1];
            Array.Copy(nums, 0, nums, 1, nums.Length - 1);
            nums[0] = temp;
        }
    }
}

实现方法2

public class Solution {
    public void Rotate(int[] nums, int k) {
        k %= nums.Length;
        if (k < 1) return;
        Reversal(nums, 0, nums.Length - 1);
        Reversal(nums, 0, k - 1);
        Reversal(nums, k, nums.Length - 1);
    }
    private void Reversal(int[] nums, int start, int end)
    {
        while (start < end)
        {
            var temp = nums[start];
            nums[start] = nums[end];
            nums[end] = temp;
            start++;
            end--;
        }
    }
}