博客
关于我
【Leetcode】189. Rotate Array
阅读量:205 次
发布时间:2019-02-28

本文共 589 字,大约阅读时间需要 1 分钟。

题目地址:

给定一个数组 A A A,再给定一个数 k k k,要求将数组右移 k k k位。右移的意思是,每个数字向右挪动 k k k步,如果出界了,就依次再加到数组左边,继续挪。

先将 k k k模掉 A A A的长度,接着只需要三步翻转即可。代码如下:

public class Solution {       public void rotate(int[] nums, int k) {           k %= nums.length;        reverse(nums, 0, nums.length - 1);        reverse(nums, 0, k - 1);        reverse(nums, k, nums.length - 1);    }        public void reverse(int[] nums, int i, int j) {           for (; i < j; i++, j--) {               int tmp = nums[i];            nums[i] = nums[j];            nums[j] = tmp;        }    }}

时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)

转载地址:http://vocs.baihongyu.com/

你可能感兴趣的文章
MySQL数据库的事务管理
查看>>
mysql数据库的备份与恢复
查看>>
Mysql数据库的条件查询语句
查看>>
MySQL数据库的高可用
查看>>
MYSQL数据库简单的状态检查(show processlist)
查看>>
MYSQL数据库简单的状态检查(show status)
查看>>
MySQL数据库系列
查看>>
MYSQL数据库自动本地/异地双备份/MYSQL增量备份
查看>>
mysql数据库表增添字段,删除字段、修改字段的排列等操作,还不快来
查看>>
MySQL数据库设计与开发规范
查看>>
MYSQL数据库进阶操作
查看>>
MySQL数据库配置文件调优详解
查看>>
MySQL数据库面试题(2021最新版)
查看>>
MySQL数据库高并发优化配置
查看>>
mysql数据恢复
查看>>
MySQL数据的主从复制、半同步复制和主主复制详解
查看>>
mysql数据碎片整理
查看>>
MySQL数据类型
查看>>
MySQL数据类型字节长度
查看>>
mysql数据被误删的恢复方案
查看>>