【算法】旋转数组【LeetCode】
生活随笔
收集整理的這篇文章主要介紹了
【算法】旋转数组【LeetCode】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、題目
給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。
二、示例
示例 1:輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6,7,1,2,3,4,5] 向右旋轉 3 步: [5,6,7,1,2,3,4] 示例 2:輸入: [-1,-100,3,99] 和 k = 2 輸出: [3,99,-1,-100] 解釋: 向右旋轉 1 步: [99,-1,-100,3] 向右旋轉 2 步: [3,99,-1,-100]三、題解
思路:此題說到了旋轉,那么會想到的一種思路就是取模、實現循環
設:k=2、n=7 0+2%7=2 1+2%7=3 2+2%7=4 3+2%7=5 4+2%7=6 5+2%7=0 6+2%7=1 class Solution {public void rotate(int[] nums, int k) {int[] save = new int[nums.length];for(int i=0;i<nums.length;i++){save[i]=nums[i];}for (int i = 0; i < nums.length; i++) {nums[(i + k) % nums.length] = save[i];}} }總結
以上是生活随笔為你收集整理的【算法】旋转数组【LeetCode】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java-Arrays类
- 下一篇: Bigdecimal基本运算及小数保留方