当前位置: 首页 > 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节《函数的调用》
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 央行最新报告:积极落地5月推出的一揽子金融政策,促进经济供需平衡、物价合理回升
  • 本周看啥|喜欢二次元的观众,去电影院吧
  • 来论|建设性推进缅北和平进程——中国的智慧与担当
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 习近平向“和平薪火 时代新章——纪念中国人民抗日战争和苏联伟大卫国战争胜利80周年中俄人文交流活动”致贺信