【力扣】189. 旋转数组
发布日期:2021-06-29 19:44:17
浏览次数:2
分类:技术文章
本文共 1044 字,大约阅读时间需要 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) 的 原地 算法。
class Solution { public void rotate(int[] nums, int k) { if(nums.length == 1) return; k %= nums.length; int j = nums.length - k, temp; for(int i = 0; i < j / 2; i++){ temp = nums[i]; nums[i] = nums[j - i - 1]; nums[j - i - 1] = temp; } for(int i = j; i < (nums.length + j) / 2; i++){ temp = nums[i]; nums[i] = nums[nums.length - 1 + j - i]; nums[nums.length - 1 + j - i] = temp; } for(int i = 0; i < nums.length / 2; i++){ temp = nums[i]; nums[i] = nums[nums.length - i - 1]; nums[nums.length - i - 1] = temp; } }}
转载地址:https://darkness.blog.csdn.net/article/details/104083945 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年05月03日 01时29分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C#分页的总页数算法
2019-04-30
sqlserver 表连接更新字段
2019-04-30
jquery.formatDateTime
2019-04-30
jquery disabled
2019-04-30
同一个项目中使用MVC控制器和WebAPI控制器
2019-04-30
WebApi返回json
2019-04-30
easyui带file上传控件表达提交
2019-04-30
首次听说Power-BI
2019-04-30
jstree 刷新
2019-04-30
SOLID原则学习一
2019-04-30
分布式服务框架学习一
2019-04-30
微服务(Microservice)学习一
2019-04-30
负载均衡学习一
2019-04-30
Http学习一
2019-04-30
软件开发基本接口技术
2019-04-30
WebApi接口测试
2019-04-30
软件开发基本接口学习一
2019-04-30
在.net平台下创建接口服务
2019-04-30
软件开发基本接口学习二
2019-04-30