算法分析——数组翻转

题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

  输入: nums = [1,2,3,4,5,6,7], k = 3   

  输出: [5,6,7,1,2,3,4]

解答:需要注意的是,k =  k % num.length,这样避免k大于数组长度而出现的溢出情况。

 1 class Solution {
 2     public void rotate(int[] nums, int k) {
 3         k = k % nums.length;
 4         reverse(nums, 0, nums.length - 1);
 5         reverse(nums, 0, k - 1);
 6         reverse(nums, k, nums.length - 1);
 7     }
 8      public void reverse(int[] nums, int left, int right){
 9             while(left < right){
10                 int temp = nums[left];
11                 nums[left] = nums[right];
12                 nums[right] = temp;
13                 left = left + 1;
14                 right = right - 1;
15             }
16         }
17 }

 

算法分析——数组翻转

上一篇:皮克定理证明


下一篇:Spring Boot前后端分离直接访问静态页+ajax实现动态网页