旋转数组
来源:互联网 发布:初中生 18cm 知乎 编辑:程序博客网 时间:2024/04/30 10:57
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次
解法1: 内存占用少, 但是时间上效率低点,
public class Solution { public void rotate(int[] nums, int k) { int n = nums.length; k = k % n; if(n == 1 || k <= 0) return; if(k == n) { reverse(nums, 0, n-1); } else { reverse(nums, 0, n-k-1); reverse(nums, n-k, n-1); reverse(nums, 0, n-1); } } private void reverse(int[] nums, int start, int end) { for(int i = start , j = end; i != j;) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; if(i+1 == j) { break; } i++; j--; } }}
解法2:内存空间占用会大点,但是时间上效率高点public class Solution { public void rotate(int[] nums, int k) { int n = nums.length; k = k % n; if(n == 1 || k <= 0) return; int[] tmp = new int[n]; System.arraycopy(nums, n-k,tmp,0,k); System.arraycopy(nums, 0,tmp,k,n-k); System.arraycopy(tmp, 0,nums,0,n); }}
0 0
- 数组旋转
- 旋转数组
- 旋转数组
- 旋转数组
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 旋转数组
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 旋转数组
- java汇编代码学习(一)基本类型与数组类型
- express-session
- Java中重载与重写的区别
- Java连接数据库第一版
- python-xgboost调参经验
- 旋转数组
- Seccon CTF 2016 部分Writeup.md
- 使用ViewPager+FragmentAdapter 增删Fragment 异常及bug
- ViewPager+GridView实现商品分类
- Android 自定义view探索
- 同时安装office2016与visio2016
- 第十六周2
- 股票入门基础知识1:什么是股票和股份?
- 编译原理之小记录