189. Rotate Array
来源:互联网 发布:虚拟货币平台源码 编辑:程序博客网 时间:2024/05/17 09:04
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]
.
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
[show hint]
Related problem: Reverse Words in a String II
數組裡面的元素有n個,從第k個開始進行翻轉,例如:
[1,2,3,4,5,6,7]
翻轉為 [5,6,7,1,2,3,4]
題解:
將數組分為兩段:
1 2 3 4 | 5 6 7
1.翻轉第一段
4 3 2 1 | 5 6 7
2.翻轉第二段
4 3 2 1 | 7 6 5
3.再整個翻轉
5 6 7 1 2 3 4
package LeetCode.Easy;public class RotateArray {/* * 將數組分為兩段: * 1 2 3 4 | 5 6 7 * 1.翻轉第一段 * 4 3 2 1 | 5 6 7 * 2.翻轉第二段 * 4 3 2 1 | 7 6 5 * 3.再整個翻轉 * 5 6 7 1 2 3 4*/ public void rotate(int[] nums, int k) { int n = nums.length; k = k % n; //取得最後面的k位數 reverse(nums, 0, n - k); //翻轉第一段 reverse(nums, n - k, n); //翻轉第二段 reverse(nums, 0, n); //再整個翻轉 } void reverse(int[] nums, int begin, int end) { int left = begin; int right = end - 1; while(left < right) { swap(nums, left, right); left ++; right --; } } void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; }}
阅读全文
1 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
- 在centos中用脚本给firefox导入certificate
- 微信js-sdk分享朋友圈回调事件
- Ajax和JSon
- Xcode执行Analyze静态分析
- iterm2 + oh-my-zsh 让你的命令行用的飞起
- 189. Rotate Array
- 原型工具之教育优惠政策对比,哪家强?
- XRefreshView嵌套StickyListHeadersListView问题
- Linux网络编程——tcp并发服务器(poll实现)
- 2.1.14 —线性表—Valid Sudoku
- 9.文件系统
- jdk1.8 J.U.C并发源码阅读------AQS之conditionObject内部类分析
- Tensorflow一些常用基本概念与函数(3)
- h5苹果ios系统中overflow: auto滑动不流畅