当前位置: 首页 > news >正文

力扣hot100——轮转数组

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

解法思路:

        // 空间换时间:轮转问题看作为平移,轮转就是转一圈,如果拉直这个轮的话,其实就是所有数字向后平移k

        // 建立一个大小为 原数组+k的数组,将原数组中元素,移动k放入

        // 然后将超出原数组部分放到前面空出的部分

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        // 空间换时间:轮转问题看作为平移,轮转就是转一圈,如果拉直这个轮的话,其实就是所有数字向后平移k
        // 建立一个大小为 原数组+k的数组,将原数组中元素,移动k放入
        // 然后将超出原数组部分放到前面空出的部分
        int n = nums.size();
        k %= n;  // 如果 k 大于数组长度,只需考虑 k 对 n 取余的情况
        vector<int> temp_v(n);

        // 将元素平移 k 位
        for (int i = 0; i < n; ++i) {
            temp_v[(i + k) % n] = nums[i];
        }

        // 将结果复制回原数组
        for (int i = 0; i < n; ++i) {
            nums[i] = temp_v[i];
        }
    }
};

相关文章:

  • 搭建 Hadoop 3.3.6 伪分布式
  • Matplotlib中strpdate2num()函数报错的解决方法
  • 数字识别系统设计与实现
  • go~为什么会有json.Number这种类型存在
  • 大气体育直播模板赛事扁平自适应模板源码
  • 全面收集中间件Exporter适配:从Redis到ActiveMQ,掌握监控数据采集的最佳实践
  • Django加bootstrap实现上传文件含有进度条
  • 与本地电脑PDF文档对话的PDF问答程序
  • 设备唯一ID获取,支持安卓/iOS/鸿蒙Next(uni-device-id)UTS插件
  • 【ROS2】【ROS2】RViz2源码分析(八):Display中订阅ROS2消息(使用Qt信号和槽传递ROS2消息)
  • Python递归函数
  • 设计模式教程:责任链模式(Chain of Responsibility Pattern)
  • 基于cppzmq和MsgPack封装的Publisher Subscriber - 发布订阅模式
  • 如何组织和管理JavaScript文件:最佳实践与策略
  • MATLAB进阶之路:数据导入与处理
  • Java File 类
  • rman 备份恢复1
  • spring日志
  • OmniParser V2 和 OmniTool 让 AI 来控制 Windows 设备
  • c语言基础第12节《函数的调用》
  • 印控克什米尔26名游客遭恐袭丧生后,印度对巴宣布多项反制措施
  • 神舟二十号航天员乘组计划于10月下旬返回
  • 中国与柬埔寨签署多领域合作文件
  • 民政部:从未设立或批准设立“一脉养老”“惠民工程”项目,有关App涉嫌诈骗
  • 马上评|京东VS美团,消费者希望看到的不是“口水仗”
  • 特朗普施压鲍威尔遭多方批评,分析人士:特朗普若解雇鲍威尔或冲击美债