【力扣练习题】热题100道【哈希】189. 轮转数组

class Solution {

public void rotate(int[] nums, int k) {

int n = nums.length;

// 关键:处理 k >= n 的情况,旋转 n 步相当于没有旋转,取余简化操作

k = k % n;

if (k == 0)

return; // 无需旋转,直接返回

复制代码
    int[] temp = new int[n]; // 只需要一个临时数组,减少冗余

    // 步骤1:将原数组末尾 k 个元素复制到临时数组的前 k 位
    for (int i = 0; i < k; i++) {
        temp[i] = nums[n - k + i]; // 修正索引,获取末尾第 k 个到第 1 个元素
    }

    // 步骤2:将原数组前 n-k 个元素复制到临时数组的后 n-k 位
    for (int i = 0; i < n - k; i++) {
        temp[k + i] = nums[i];
    }

    // 步骤3:将临时数组的内容复制回原始数组(关键:修改原始数组的内容,而非引用)
    System.arraycopy(temp, 0, nums, 0, n);
}

}

两种 Python 实现(常规循环版、切片优化版)的时间复杂度均为 O(n)(n 为列表长度),核心操作次数随列表长度线性增长。

相关推荐
永远都不秃头的程序员(互关)20 小时前
【决策树深度探索(一)】从零搭建:机器学习的“智慧之树”——决策树分类算法!
算法·决策树·机器学习
程序员-King.20 小时前
day161—动态规划—最长递增子序列(LeetCode-300)
算法·leetcode·深度优先·动态规划·递归
西柚小萌新20 小时前
【计算机视觉CV:目标检测】--3.算法原理(SPPNet、Fast R-CNN、Faster R-CNN)
算法·目标检测·计算机视觉
高频交易dragon20 小时前
Hawkes LOB Market从论文到生产
人工智能·算法·金融
_OP_CHEN20 小时前
【算法基础篇】(五十)扩展中国剩余定理(EXCRT)深度精讲:突破模数互质限制
c++·算法·蓝桥杯·数论·同余方程·扩展欧几里得算法·acm/icpc
福楠20 小时前
C++ STL | set、multiset
c语言·开发语言·数据结构·c++·算法
enfpZZ小狗20 小时前
基于C++的反射机制探索
开发语言·c++·算法
炽烈小老头20 小时前
【每天学习一点算法 2026/01/22】杨辉三角
学习·算法
MicroTech202520 小时前
微算法科技(NASDAQ :MLGO)量子安全区块链:PQ-DPoL与Falcon签名的双重防御体系
科技·算法·安全
努力也学不会java20 小时前
【Spring Cloud】 服务注册/服务发现
人工智能·后端·算法·spring·spring cloud·容器·服务发现