leetcode 189. 旋转数组
生活随笔
收集整理的這篇文章主要介紹了
leetcode 189. 旋转数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
思路
先左邊翻轉(zhuǎn),再右邊翻轉(zhuǎn),最后整體翻轉(zhuǎn)。
注意存在翻轉(zhuǎn)超過一個周期的情況,要先取余,避免越界。
題解
class Solution {public void rotate(int[] nums, int k) {k %= nums.length;//翻轉(zhuǎn)超過一個周期int pos = nums.length - k;reverse(nums, 0, pos - 1);reverse(nums, pos, nums.length - 1);reverse(nums, 0, nums.length - 1);}public void reverse(int[] nums, int left, int right) {//System.out.println("翻轉(zhuǎn)前:" + Arrays.toString(nums) + ", left=" + left + ", right=" + right);while (left <= right) {int temp = nums[left];nums[left] = nums[right];nums[right] = temp;left++;right--;}//System.out.println("翻轉(zhuǎn)后:" + Arrays.toString(nums));} }總結(jié)
以上是生活随笔為你收集整理的leetcode 189. 旋转数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 171. Excel表
- 下一篇: leetcode 190. Revers