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

leetcode做题笔记189. 轮转数组

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

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释: 
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

思路一:模拟题意

c++解法

class Solution {
public:void rotate(vector<int>& nums, int k) {int len = nums.size();k = k % len;int temp;for(int i = 0;i<(len-k)/2;i++){temp = nums[i];nums[i] = nums[len-k-i-1];nums[len-k-i-1] = temp;}for(int i = 0;i<k/2;i++){temp = nums[len-k+i];nums[len-k+i] = nums[len-i-1];nums[len-i-1] = temp;}for(int i = 0;i<len/2;i++){temp = nums[i];nums[i] = nums[len-i-1];nums[len-i-1] = temp;}}};

分析:

本题要求将数组中元素向右轮转k个位置,可以将溢出数组长度的元素记录下来,将全部元素向右转k次即可

总结:

本题考察对数组的应用,利用变量temp记录溢出元素,后面再添加到数组中返回即可解决

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

相关文章:

  • 数据库第七章作业
  • 使用服务器训练模型的注意事项
  • Linux性能优化--性能追踪3:系统级迟缓(prelink)
  • SpringBoot2.x简单集成Flowable
  • 微信小程序一键获取位置
  • Linux性能优化--使用性能工具发现问题
  • 【Proteus仿真】【STM32单片机】路灯控制系统
  • Flutter笔记:发布一个Flutter头像模块 easy_avatar
  • 标准化助推开源发展丨九州未来参编开源领域4项团体标准正式发布
  • ChatGPT对于留学生论文写作有哪些帮助?
  • 【yolov8目标检测】使用yolov8训练自己的数据集
  • 【vue+nestjs】gitee第三方授权登录【超详细】
  • node 第八天 使用前后端不分离的方式实现cookie登录验证
  • Ubuntu系统如何进行网络连接-连接电脑局域网-物联网开发-Ubuntu系统维护
  • STL库——Vector常见使用接口
  • 将文件(File 对象)分割成多个块
  • 若要对多态类进行深拷贝,应使用虚函数的clone,而不是公开的拷贝构造赋值
  • 同构字符串(C++解法)
  • 『Linux升级路』基本指令
  • python argparse解析参数
  • 【数据挖掘】数据挖掘、关联分析、分类预测、决策树、聚类、类神经网络与罗吉斯回归
  • nodejs+vue 学生宿舍管理系统设计与实现
  • 汽车R155法规包含那些国家?
  • 一个简易的低代码
  • 【JVM系列】- 类加载子系统与加载过程
  • Amazon图片下载器:利用Scrapy库完成图像下载任务
  • Unity中Shader的Pass的复用
  • vue内容自适应方法
  • RustDay05------Exercise[41-50]
  • C语言实现通讯录(超详细)