博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
189. Rotate Array 从右边开始翻转数组
阅读量:5053 次
发布时间:2019-06-12

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

[抄题]:

Rotate an array of n elements to the right by 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].

 [暴力解法]:

时间分析:

空间分析:

 [优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

  1. swap函数都忘了,也是醉了
  2. k步可能很大,所以需要%=数组长度

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

从左往右的:

[一刷]:

  1. swap函数需要带入index的,所以内部i j 需要初始化

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

reverse都是用swap函数,套路都一样

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

swap

public void swap (int[] nums, int i, int j) {        while (i < j) {            int temp = nums[i];            nums[i] = nums[j];            nums[j] = temp;                        i++;            j--;        }

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

swap的所有题

 [代码风格] :

class Solution {    public void rotate(int[] nums, int k) {        //cc        if (nums == null || nums.length == 0) {            return ;        }                //ini, k        k %= nums.length;                //swap        swap(nums, 0, nums.length - k - 1);        swap(nums, nums.length - k, nums.length - 1);        swap(nums, 0, nums.length - 1);        //return    }        public void swap (int[] nums, int i, int j) {        while (i < j) {            int temp = nums[i];            nums[i] = nums[j];            nums[j] = temp;                        i++;            j--;        }    }}
View Code

 

转载于:https://www.cnblogs.com/immiao0319/p/8872598.html

你可能感兴趣的文章
Java的序列化和反序列化
查看>>
selenium IDE常用命令
查看>>
开始写博客了
查看>>
Python selenium之css定位
查看>>
UVA 1525 Falling Leaves
查看>>
03-数据基础
查看>>
CentOS上yum方式安装配置LNMP
查看>>
Spring SpringMvc Hibernate整合
查看>>
Gradle 使用Maven本地缓存
查看>>
程序猿编程十大原则
查看>>
hdu1044
查看>>
MVC+EF之Attribute
查看>>
print_r 打印对象
查看>>
zTree——学习记录之一
查看>>
C++的IO操作
查看>>
v-cloakd的应用场景和使用方法
查看>>
BZOJ.3998.[TJOI2015]弦论(后缀自动机)
查看>>
localStorage登录页记住密码(艺博会)
查看>>
JSON.parse()与JSON.stringify()的区别
查看>>
json对象的获取
查看>>