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

leetcode 189. 轮转数组

2023.9.3

        k的取值范围为0~100000,此时需要考虑到两种情况,当k为0时,此时数组不需要轮转,因此直接return返回;当k大于等于数组nums的大小时,数组将会转为原来的数组,然后再接着轮转,此时可以先处理一下k值:k = k % nums.size();  接下来再构造一个新数组用来装轮转过后的元素值即可。 代码如下:

class Solution {
public:void rotate(vector<int>& nums, int k) {k = k % nums.size(); //k可能大于nums.size()if(k == 0) return;vector<int> ans(nums.size());int seg = nums.size()-k;int j = 0;for(int i=seg; i<nums.size(); i++){ans[j] = nums[i];j++;}for(int i=0; i<seg; i++){ans[j] = nums[i];j++;}nums = ans;}
};

 优化:本题数组可以原地修改。

class Solution {
public:void rotate(vector<int>& nums, int k) {k = k % nums.size();reverse(nums.begin(),nums.end());reverse(nums.begin(),nums.begin()+k);reverse(nums.begin()+k,nums.end());}
};

        ps:看到需要反转的题,可以考虑一下reverse函数能否派上用场。

http://www.lryc.cn/news/152202.html

相关文章:

  • 亚马逊广告收入突破百亿美元,有望成为下一个收入支柱来源?
  • MATLAB中isequal函数转化为C语言
  • 【MTK平台】根据kernel log分析wifi scan的时候流程
  • CVE-2023-23752:Joomla未授权访问漏洞复现
  • MATLAB中circshift函数转化为C语言
  • 浅谈React生命周期
  • 基于龙格-库塔算法优化的BP神经网络(预测应用) - 附代码
  • C++ 获取进程信息
  • 【Redis从头学-13】Redis哨兵模式解析以及搭建指南
  • 【个人笔记js的原型理解】
  • Liunx系统编程:信号量
  • 大集合按照指定长度进行分割成多个小集合,用于批量多次处理数据
  • ELK日志收集系统集群实验(5.5.0版)
  • 基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)
  • 数据结构--6.0最短路径
  • Docker进阶:mysql 主从复制、redis集群3主3从【扩缩容案例】
  • 遗传算法决策变量降维的matlab实现
  • 基于Open3D和PyTorch3D读取三维数据格式OBJ
  • 带纽扣电池产品出口澳洲安全标准,纽扣电池IEC 60086认证
  • spring高级源码50讲-37-42(springBoot)
  • 腾讯云、阿里云、华为云便宜云服务器活动整理汇总
  • L1-055 谁是赢家(Python实现) 测试点全过
  • 开发一个npm包
  • 介绍几种使用工具
  • Vue:关于声明式导航中的 跳转、高亮、以及两个类名的定制
  • Sharding-JDBC分库分表-自动配置与分片规则加载原理-3
  • E8267D 是德科技矢量信号发生器
  • Git git fetch 和 git pull 区别
  • 软件UI工程师工作的岗位职责(合集)
  • Mac系统Anaconda环境配置Python的json库