博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
189. Rotate Array
阅读量:6307 次
发布时间:2019-06-22

本文共 646 字,大约阅读时间需要 2 分钟。

一、题目

  1、审题

  

  2、分析

    给出一个整形数组,将每一个元素向右边移动 k 个元素。

 

二、解答

  1、思路:

    ①、将数组整体翻转一遍;

    ②、将数组从 (0,K-1)翻转一遍; 则前 K 个元素已经符合;

    ③、将数组从(K,end)翻转一遍;则后边 end - K 个元素已经符合;

public void rotate(int[] nums, int k) {        k = k % nums.length;        reverse(nums, 0, nums.length - 1);        reverse(nums, 0, k - 1);        reverse(nums, k, nums.length - 1);    }        private void reverse(int[] nums, int start, int end) {        while(start < end) {            int tmp = nums[start];            nums[start] = nums[end];            nums[end] = tmp;            start++;            end--;        }    }

 

转载于:https://www.cnblogs.com/skillking/p/9805203.html

你可能感兴趣的文章
HTML5-placeholder属性
查看>>
Android选择本地图片过大程序停止的经历
查看>>
poj 2187:Beauty Contest(旋转卡壳)
查看>>
《Flask Web开发》里的坑
查看>>
Python-库安装
查看>>
Git笔记
查看>>
普通人如何从平庸到优秀,在到卓越
查看>>
SLAM数据集
查看>>
c#学习笔记05——数组&集合
查看>>
【图论算法】Dijstra&BFS
查看>>
注册和上传文件(头像)
查看>>
使用OVS
查看>>
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
vue (v-if show 问题)
查看>>
https基础
查看>>
css3 canvas之刮刮卡效果
查看>>
并查集模板
查看>>