189. Rotate Array 旋转数组
2017-12-06 10:51
357 查看
Rotate an array of n elements to the right by
k steps.
For example, with n = 7 and k = 3, the array
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
问题解释:将后k个数值前置
问题思路:
[1,2,3,4,5,6,7]
全部翻转为[7,6,5,4,3,2,1]
翻转前k个数值[5,6,7,4,3,2,1]
翻转后n-k个数值[5,6,7,1,2,3,4]
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.
问题解释:将后k个数值前置
class Solution { public void rotate(int[] nums, int k) { k=k%nums.length;//确保k在nums.length范围内 reverse(nums,0,nums.length-1);//翻转全部数组 reverse(nums,0,k-1);//翻转数组的前k个数值 reverse(nums,k,nums.length-1);//翻转数组的后n-k个数值 } public void reverse(int[] nums, int start, int end){//将数组中的所有数值全部翻转 for(int i=start,j=end;i<j;i++,j--){ int tmp=nums[j]; nums[j]=nums[i]; nums[i]=tmp; } } }
问题思路:
[1,2,3,4,5,6,7]
全部翻转为[7,6,5,4,3,2,1]
翻转前k个数值[5,6,7,4,3,2,1]
翻转后n-k个数值[5,6,7,1,2,3,4]
相关文章推荐
- LeetCode 189. Rotate Array (旋转数组)
- [LeetCode] 189. Rotate Array 旋转数组
- 【LeetCode-面试算法经典-Java实现】【189-Rotate Array(旋转数组)】
- 189. Rotate Array (旋转数组)
- LeetCode 189. Rotate Array(旋转数组)
- leetcode_189. Rotate Array 原地旋转数组
- leetcode 189. Rotate Array-旋转数组
- leetcode-189 Rotate Array 旋转数组
- 面试_java:数组:旋转数组:rotate array(189)
- leetcode 189. Rotate Array旋转数组
- LeetCode 189 Rotate Array(旋转数组)
- LeetCode 189 Rotate Array(旋转数组)
- 189. Rotate Array 旋转数组
- [LeetCode]12. Rotate Array旋转数组
- 【LeetCode】Rotate Array 旋转数组
- [LeetCode] Rotate Array 旋转数组
- Rotate Array数组旋转
- LeetCode Rotate Array 旋转数组
- 1.1数组和链表:189. Rotate Array(Leetcode)
- leetCode 189. Rotate Array 数组