189. Rotate Array
来源:互联网 发布:淘宝旺旺卖家版2017 编辑:程序博客网 时间:2024/06/05 05:50
原题
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].
Could you do it in-place with O(1) extra space?
代码实现
空间复杂度O(1),时间复杂度O(logn)
/// <summary> /// RotateArraySln /// </summary> public class RotateArraySln { public void Rotate(int[] nums, int k) { int n = nums.Length; if (n == 0 || n == 1) return; if ((double)k / n > 1) k = k % n; if (k == 0) return; Reverse(nums, 0, n - k); //index, length Reverse(nums, n - k, k); Reverse(nums, 0, n); } private void Reverse(int[] nums, int index, int length) { int i = 0; int loop = length/2; while (i < loop) { swap(ref nums[index + i], ref nums[length + index - i - 1]); i++; } } private void swap(ref int a, ref int b) { int tmp = a; a = b; b = tmp; } }
.NET简介版
public void Rotate(int[] nums, int k) { int n = nums.Length; if (n == 0 || n == 1) return; if ((double)k / n > 1) k = k % n; if (k == 0) return; System.Array.Reverse(nums, 0, n - k); //index, length System.Array.Reverse(nums, n - k, k); System.Array.Reverse(nums); }
2 0
- Leetcode - Array - 189. Rotate Array
- 189. Rotate Array leetcode(array)
- LeetCode-Array-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
- Leetcode 189. Rotate Array
- 189. Rotate Array LeetCode
- 189. Rotate Array
- [LeetCode]189. Rotate Array
- 189. Rotate Array
- leetcode-189.-Rotate Array
- 189. Rotate Array
- 189. Rotate Array
- 189. Rotate Array
- 虚函数
- iOS下载网络图片并存储到沙盒目录下
- win10下Anaconda管理Python开发环境
- 搭建wamp环境,数据库基础知识
- seekg()与tellg()相关文件操作
- 189. Rotate Array
- bzoj 4445: [Scoi2015]小凸想跑步 (半平面交)
- python简单应用:字数统计
- linux arp代理,DMZ与NAT
- 随机过程基本概念
- android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检索
- NandFlash驱动超详细分析
- 淘宝网分布式存储技术视频
- 2016-2017学年第二学期C++第五章(2)