LeetCode Rotate Array

原创 2015年07月08日 20:22:18

Description:

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.

Solution:

有这么几种方法:

1. 重新new一个数组

2. 向右循环k次

3. 比较巧妙。将数组分为两个部分,前面n-k个和后面的k个,下标分别是[0, n-k-1]和[ n-k, n-1]。然后前后两个区间都分别倒置,最后再将整个区间倒置。

import java.util.*;

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

	void reverse(int[] nums, int start, int end) {
		int c;
		for (int i = start, j = end; i < j; i++, j--) {
			c = nums[i];
			nums[i] = nums[j];
			nums[j] = c;
		}
	}
}


Leetcode:189. Rotate Array(JAVA)

【问题描述】 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k ...
  • u010183658
  • u010183658
  • 2016年03月21日 16:31
  • 319

LeetCode189——Rotate Array两种解法(一种易读,一种高效)

Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array...
  • booirror
  • booirror
  • 2015年02月26日 09:54
  • 10646

【LeetCode】Rotate Array 旋转数组

题目 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, ...
  • xiangshimoni
  • xiangshimoni
  • 2015年04月23日 15:38
  • 1184

【LeetCode-面试算法经典-Java实现】【189-Rotate Array(旋转数组)】

【189-Rotate Array(旋转数组)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Rotate an array of n elements to the r...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月24日 07:13
  • 3188

189. Rotate Array [easy] (Python)

题目链接https://leetcode.com/problems/rotate-array/题目原文 Rotate an array of n elements to the right by ...
  • coder_orz
  • coder_orz
  • 2016年07月28日 10:32
  • 1322

LeetCode(189) Rotate Array

题目如下: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the ...
  • feliciafay
  • feliciafay
  • 2015年03月20日 12:24
  • 2648

【LeetCode】【Solution】Find Minimum in Rotated Sorted Array I & II

【题目】 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 ...
  • ljiabin
  • ljiabin
  • 2014年11月10日 22:25
  • 3082

[leetcode][array] Rotate Array

题目; Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3...
  • Clairezz_
  • Clairezz_
  • 2015年05月23日 13:41
  • 131

[LeetCode][Java] Rotate Image

题目: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (...
  • Evan123mg
  • Evan123mg
  • 2015年07月14日 19:57
  • 602

leetcode刷题系列C++-rotate image

You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise)....
  • u013676711
  • u013676711
  • 2016年02月22日 11:18
  • 253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode Rotate Array
举报原因:
原因补充:

(最多只允许输入30个字)