博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3、旋转数组
阅读量:6005 次
发布时间:2019-06-20

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

3、旋转数组

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

示例 1:

输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1,-100,3]向右旋转 2 步: [3,99,-1,-100]

说明:

  • 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
  • 要求使用空间复杂度为 O(1) 的原地算法。

答案解析:

public static void rotate(int[] nums, int k) {        int len = k;        if (k > nums.length) {            len = k % nums.length;        }        int index = 0;        while (index < len) {            int temp = nums[nums.length - 1];            for (int i = nums.length - 1; i > 0; i--) {                nums[i] = nums[i - 1];            }            nums[0] = temp;            index++;        }    }

转载于:https://www.cnblogs.com/sikaozhifu/p/10752860.html

你可能感兴趣的文章
oracle创建表空间 删除表空间 创建用户 删除用户相关SQL
查看>>
查看mysql版本的四种方法
查看>>
LVM
查看>>
学习之shell脚本
查看>>
Andorid Launcher程序代码分析
查看>>
Swing 和AWT之间的关系
查看>>
【Android必备】构建一个App小部件(24)【代码块异常】
查看>>
【Touch&input 】支持游戏控制器(15)
查看>>
【Interface&navigation】添加并处理操作(46)
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
手机视频会议的实现
查看>>
性能及监控
查看>>
linux系统CPU、内存、硬盘、网络、lnmp服务整体监控邮件报警
查看>>
我的友情链接
查看>>
猴子吃桃问题
查看>>
个人总结问卷调查,头脑风暴,焦点小组的区别
查看>>
Ubuntu系统(十一)-MySql数据库安装与配置
查看>>
帝国网站系统目录说明
查看>>
为虚拟机提供FT
查看>>