IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【力扣/牛客刷题】189. 轮转数组 -> 正文阅读

[数据结构与算法]【力扣/牛客刷题】189. 轮转数组

作者:?? xxxflower. ??
博客主页:xxxflower的博客
专栏:【力扣/牛客刷题】篇
语录:?每一个不曾起舞的日子,都是对生命的辜负。?

力扣题目:
轮转数组
(需要看答案的uu可以直接跳到第三种解题思路,前两种是自己的思路,时间复杂度都太高。)
在这里插入图片描述

【1】分析
思路一:首先我们可以创建一个临时变量temp,将数组中最后一个值放入temp中, 然后依次将数组的值通过循环往后移动。

在这里插入图片描述
于是我们可以写出 下列代码:

class Solution {
    public void rotate(int[] nums, int k) {
        for(int j = 0; j < k;j++){
            int temp = nums[nums.length-1];
            for(int i = 1;i < nums.length; i++){
            nums[nums.length - i] =  nums[nums.length - (i+1)];
            }
            nums[0] = temp;
        }
    }
}

这样写代码是没有语法问题单,但是!这样写超过了题目所规定的时间复杂度。如下:
在这里插入图片描述
这是一件令人伤心的事情!T.T 5555
我们来换一种思路:
在这里插入图片描述
然后:我们会得到以下代码:

class Solution {
    public void rotate(int[] nums, int k) {
        for(int i = 0;i < k ;i++){
            int[] arr1 = new int[nums.length];
            arr1[0] = nums[nums.length - 1];
            for(int j = 1;j < nums.length ;j++){
                arr1[j] = nums[j-1];
            }
            for(int m = 0;m < nums.length; m++){
                nums[m] = arr1[m];
            }
        }
    }
}

很好。然后…
在这里插入图片描述
叒不对,我真是,555太难过了。我们再换种思路(官方提供):
在这里插入图片描述
在这里插入图片描述

class Solution {
    public void rotate(int[] nums, int k) {
        int n = nums.length;
        k %= n;
        reserve(nums,0,n-1);
        reserve(nums,0,k-1);
        reserve(nums,k,n-1);
    }
    public void reserve(int[] nums,int start,int end){
        for(int i = start,j = end;i < j;i++,j--){
            int temp = nums[j];
            nums[j] = nums[i];
            nums[i] = temp;
        }
    }
}

在这里插入图片描述
不得不说,这种方法真的太妙啦。真是进了米奇妙妙屋了。
在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:59:49  更:2022-10-17 13:02:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:14:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码