力扣hot100 轮转数组 一题多解 翻转数组

Problem: 189. 轮转数组
力扣hot100 轮转数组 一题多解 翻转数组_第1张图片

文章目录

  • 思路
  • 复杂度
  • Code

思路

‍ 参考

力扣hot100 轮转数组 一题多解 翻转数组_第2张图片

力扣hot100 轮转数组 一题多解 翻转数组_第3张图片

复杂度

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( 1 ) O(1) O(1)

Code

class Solution {
	public void rotate(int[] nums, int k)
	{
		int n = nums.length;
		k = k % n;
		reverse(nums, 0, n - 1);
		reverse(nums, 0, k - 1);
		reverse(nums, k, n - 1);
	}

//	翻转数组 nums 的区间 [l,r]
	private void reverse(int[] nums, int l, int r)
	{
		while (l < r)
		{
			int t = nums[l];
			nums[l] = nums[r];
			nums[r] = t;
			l++;
			r--;
		}
	}
}

你可能感兴趣的:(力扣,hot100,leetcode,算法,职场和发展)