Easy-题目65:189. Rotate Array

原创 2016年05月30日 22:42:43

题目原文:
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].
题目大意:
给一个数组,循环右移k位。
题目分析:
这题好像也是考研408复习资料里面出现过的一道题,(还是笔试原题?我忘了)。如果不给出答案我也是想不到的。用三步翻转实现:
(1) 先翻转前n-k位;
(2) 再翻转后k位;
(3) 再从头到尾翻转。
但本题中k有可能大于数组长度n,这种情况下相当于循环移动了n%k次(剩下的因为是整除的,相当于循环移动了n的整数倍,等于没移)
源码:(language:c)

void rotate(int* nums, int numsSize, int k) {
    if(k>=numsSize)
        k=k%numsSize;
    reverse(nums,numsSize-k);
    reverse(nums+numsSize-k,k);
    reverse(nums,numsSize);
}
void reverse(int* a,int n)
{       
    int i,t;
    for(i=0;i<n/2;i++) {
        t=*(a+i);
        *(a+i)=*(a+n-i-1);
        *(a+n-i-1)=t;
    }
}

成绩:
8ms,beats 9.23%,众数8ms,90.77%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

【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
  • 3022

Collections类中常用算法之Rotate

Collections类中常用算法之Rotate Collections类中常用算法之Rotate Collections类简介 Rotate方法使用 Rotate方法源码分析 小结Collectio...
  • u014532901
  • u014532901
  • 2016年10月23日 14:26
  • 1370

LeetCode之Array题目汇总

Two SumGiven an array of integers, find two numbers such that they add up to a specific target numbe...
  • Yano_nankai
  • Yano_nankai
  • 2015年12月23日 19:28
  • 3342

神奇的rotate函数

我要给大家介绍一种神奇的rotate或者说数组翻转函数。
  • esir82
  • esir82
  • 2016年08月25日 07:34
  • 779

STL实现细节之rotate()

STL中 rotate(first, middle, last) 函数的作用是原地把容器区间 [first, middle)(左半部分) 与 [middle, last) (右半部分)的元素互换。 ...
  • qmickecs
  • qmickecs
  • 2017年04月26日 19:45
  • 773

Struts2配置时报struts-default.xml:65:72异常的解决方法

与下相似的异常,可能行数不同,但原因大致相同,就是服务器如Tomcat的lib文件夹下与你在项目中导入的Struts2包冲突了,即使版本相同的jar包也会报错,这是偶寻找解决方法的经过,授人以鱼不如授...
  • z28126308
  • z28126308
  • 2016年10月08日 01:07
  • 3077

一道ctf中的编码问题

今天做CTF题的时候,感觉有一道题很有意思,记录一下。题目链接:一段base64给了一个txt文档,打开以后满屏都是字,太多了我就不贴上来了,根据题目名字,反正就随便找了一个在线base64的网站,放...
  • m0_37812124
  • m0_37812124
  • 2017年08月03日 23:05
  • 217

OpenCV代码提取:rotate函数的实现

OpenCV代码提取:rotate函数的实现
  • fengbingchun
  • fengbingchun
  • 2016年07月16日 12:34
  • 6244

RotateDrawable的简单使用

本篇博客主要介绍RotateDrawable的简单用法。
  • u011043551
  • u011043551
  • 2017年03月12日 16:02
  • 789

【STL源码剖析读书笔记】【第6章】算法之rotate算法

1、  rorate函数将[first, middle)内的元素和[middle, last)内的元素互换,middle所指元素成为容器的第一个元素。rotate函数为了追求效率,根据迭代器的移动能力...
  • ruan875417
  • ruan875417
  • 2015年05月24日 14:03
  • 548
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目65:189. Rotate Array
举报原因:
原因补充:

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