LeetCode-Rotate Array-解题报告

原创 2015年07月08日 19:25:36

原题链接 https://leetcode.com/problems/rotate-array/

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. 

数组移位。


然而我并有想出o(1) 的额外空间,然后还不超时的情况。。


可以先将k对n取余,因为k完全可以比n大,表示数组移动了一圈,然而这一圈并不需要做。

如果k%n == 0 表示刚好移动很多圈,所以什么事情都不用做。

如果k % n != 0 可以创建一个k大小的数组,然后将原数组后面k个元素放在临时数组中。

然后开始移动原数组中开始的元素向后移动k位。

再将临时数组中的元素放在原数组的前k个位置中去。


class Solution {
public:
    void rotate(int nums[], int n, int k) {
       k = k % n ;
       if(k == 0)return;
       int* tmp = new int[k];
       for(int i = n - k; i < n; ++i)
            tmp[i - n + k] = nums[i];
       for(int i = n - 1; i >= k ; --i)
            nums[i] = nums[i - k];
       for(int i = 0; i < k; ++i)
            nums[i] = tmp[i];
    }
};


版权声明:

相关文章推荐

Leetcode #61. Rotate List 循环位移链表 解题报告

1 解题思想题目的意思是如果有一个链表,现在让你循环向右位移K步,得到一个新的开头的链表,例子可以看原题的实例。首先有一个你要明白的是,向右移动的K步,可能会大于链表的长度N,于是乎你需要这么做:1、...
  • MebiuW
  • MebiuW
  • 2016-05-01 23:32
  • 1048

LeetCode 48. Rotate Image 解题报告

LeetCode 48. Rotate Image 解题报告题目描述You are given an n x n 2D matrix representing an image.Rotate the ...

Leetcode #48. Rotate Image 图像旋转 解题报告

1 解题思想这道题呢,是让一个图像(二维数组),翻转90度,原地的这道题如果不要求原地,那么我们可以重新开一个数组填入,单着明显不满足原地移动的要求。仔细观察,二维数组我们可以看成是一圈,一圈的数据,...

LeetCode 238. Product of Array Except Self 解题报告

LeetCode 238. Product of Array Except Self 解题报告

【LeetCode】Find Minimum in Rotated Sorted Array 解题报告

【题目】 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 ...

【LeetCode】Search in Rotated Sorted Array II 解题报告

【题目】 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this a...

LeetCode 421 Maximum XOR of Two Numbers in an Array 解题报告

一道有意思的题目, 用到了异或运算的一个小特性. LeetCode 421 Maximum XOR of Two Numbers in an Array. Given a non-empty arra...

LeetCode 350. Intersection of Two Array II 解题报告

LeetCode 350. Intersection of Two Array II 解题报告

[Leetcode] 81. Search in Rotated Sorted Array II 解题报告

题目: Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this aff...

[Leetcode] 33. Search in Rotated Sorted Array 解题报告

题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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