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-面试算法经典-Java实现】【189-Rotate Array(旋转数组)】

【189-Rotate Array(旋转数组)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Rotate an array of n elements to the r...

LeetCode 189. Rotate Array(旋转数组)

原题网址:https://leetcode.com/problems/rotate-array/ Rotate an array of n elements to the right by ...
  • jmspan
  • jmspan
  • 2016年05月04日 01:22
  • 532

【LeetCode】Rotate Array

Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [...
  • buptwds
  • buptwds
  • 2015年06月21日 16:55
  • 259

189.[LeetCode] Rotate Array

反转字符串,这是一个非常经典的题,算法很多种 我的算法是借鉴《编程之法》一书中的 三步反转法(题中的移动操作其实就是变向的反转)三步反转法非常好理解,简单来说就是数据(数组,字符串等),由 A,B两...

LeetCode 189 Rotate Array(旋转数组)

翻译通过K步将一个有着n个元素的数组旋转到右侧。例如, 给定n = 7和k = 3,数组[1,2,3,4,5,6,7]会被旋转成[5,6,7,1,2,3,4]。批注: 尽你可能尝试多种解决方案,这里至...
  • NoMasp
  • NoMasp
  • 2016年01月28日 15:10
  • 2764

【LeetCode-189】Rotate Array(C++)

题目: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3...

[LeetCode] Rotate Array

Rotate an array of n elements to the right by k steps.For example, with n=7n = 7 and k=3k = 3, the a...

leetcode--Rotate Array

/*  * 需求:旋转数组  * Rotate an array of n elements to the right by k steps.  */ 在自己的eclipse上写的...

LeetCode 189. Rotate Array

尽量用多种方法解题,至少有三种方法可以解决这个问题。

【LeetCode刷题记录】Rotate Array

LeetCode数组题之Rotate Array
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode Rotate Array
举报原因:
原因补充:

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