当前位置: 首页 > 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];
        }
    }
};

http://www.dtcms.com/a/28430.html

相关文章:

  • 搭建 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节《函数的调用》
  • 怎么用cURL库对接智能语音播报设备
  • ShenNiusModularity项目源码学习(10:ShenNius.FileManagement项目分析)
  • Java语法-集合
  • Java——继承
  • 【OS安装与使用】part5-ubuntu22.04基于conda安装pytorch+tensorflow
  • 深入解析 sudo -l 命令的输出内容
  • pdf预览在vue项目中的使用兼容ie浏览器
  • 面对STM32的庞大体系,如何避免迷失在细节中?
  • [python]windows上安装yolov12环境
  • 选好加密狗,一次说全