LeetCode 189.轮转数组

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

思路

代码

java 复制代码
class Solution {
    public void rotate(int[] nums, int k) {
        int n = nums.length;
        k = k % n;
        reverse(nums, 0, n);
        reverse(nums, 0, k);
        reverse(nums, k, n);

    }

    private void reverse(int[] nums, int start, int end) {
        while(start < end) {
            int tmp = nums[start];
            nums[start] = nums[end - 1];
            nums[end - 1] = tmp;
            start++;
            end--;
        }
    }
}

性能:时间复杂度O(n) 空间复杂度O(1)

相关推荐
蓝婷儿1 小时前
前端面试每日三题 - Day 34
前端·面试·职场和发展
S01d13r5 小时前
LeetCode 解题思路 48(编辑距离、只出现一次的数字)
算法·leetcode·职场和发展
C_Liu_5 小时前
C语言:深入理解指针(5)
java·c语言·算法
small_wh1te_coder5 小时前
从经典力扣题发掘DFS与记忆化搜索的本质 -从矩阵最长递增路径入手 一步步探究dfs思维优化与编程深度思考
c语言·数据结构·c++·stm32·算法·leetcode·深度优先
枫景Maple5 小时前
LeetCode 45. 跳跃游戏 II(中等)
算法·leetcode
এ᭄画画的北北5 小时前
力扣-236.二叉树的最近公共祖先
算法·leetcode
z人间防沉迷k7 小时前
堆(Heap)
开发语言·数据结构·笔记·python·算法
不二狗7 小时前
每日算法 -【Swift 算法】Two Sum 问题:从暴力解法到最优解法的演进
开发语言·算法·swift
LabVIEW开发7 小时前
LabVIEW中样条插值实现及应用
算法·labview知识
LabVIEW开发7 小时前
LabVIEW机械振动信号分析与故障诊断
算法·labview知识·labview开发案例