LeetCode#189. Rotate Array(数组循环移位)
来源:互联网 发布:做淘宝网店要实体店吗 编辑:程序博客网 时间:2024/06/06 01:34
- 题目:给定一个数组和一个int值k,将数组元素向右移动k位
- 难度:Easy
- 思路:
- 方法一:每次移动一位,循环移动k次(该方法的时间复杂度为k*n,n为数组长度) 超时!!!!
- 变换后的数组与元素组存在两段顺序相同的序列(右移k位的过程就是把数组的两部分交换一下)
- 将整个数组元素全部逆序一遍
- 将0-(k-1)位置上的元素逆序
- 将k-(N-1)位置上的元素逆序
- 代码:
方法一:
public class Solution { public void rotate(int[] nums, int k) { if(nums == null || nums.length == 0){ return; } int len = nums.length; k = k%len; while(k > 0){ int temp = nums[len-1]; for(int i = len-1; i >= 1; i--){ nums[i] = nums[i-1]; } nums[0] = temp; k--; } }}
方法二:
public class Solution { public void rotate(int[] nums, int k) { if(nums == null || nums.length == 0){ return; } int len = nums.length; k = k%len; reverse(nums, 0, len-1); reverse(nums, 0, k-1); reverse(nums, k, len-1); } public void reverse(int[] nums, int start, int end){ for(; start < end; start++, end--){ int temp = nums[start]; nums[start] = nums[end]; nums[end] = temp; } }}
阅读全文
0 0
- LeetCode#189. Rotate Array(数组循环移位)
- LeetCode-189:Rotate Array (数组的循环移位)
- LeetCode 189. Rotate Array(旋转数组)
- leetcode 189. Rotate Array-旋转数组
- leetcode 189. Rotate Array旋转数组
- leetcode:Rotate Array旋转数组
- 【LeetCode】Rotate Array 旋转数组
- Rotate Array 数组旋转 leetcode
- leetcode Rotate Array 旋转数组
- [LeetCode]189.Rotate Array
- [Leetcode] 189.Rotate Array
- LeetCode 189. Rotate Array
- 【LeetCode】189.Rotate Array
- [leetcode] 189.Rotate Array
- 【leetcode】189. Rotate Array
- Leetcode 189. Rotate Array
- 189. Rotate Array LeetCode
- [LeetCode]189. Rotate Array
- 删星号
- Java知识思维导图(二)
- 记一次项目实训心得经验
- Boolan* C++课程第七周笔记
- jQuery中的动画
- LeetCode#189. Rotate Array(数组循环移位)
- 感知器准则
- 组合设计模式1
- linux网络编程(2)
- springMvc的上传与下载
- Spring简单理解IOC和DI
- fuzhuo------ Problem 1411 最长配对子串
- Springmvc文件上传和下载
- 【动态规划04】codeforces811C(简单dp)