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

【Leetcode】189.轮转数组

题目链接:

189.轮转数组

题目描述:

在这里插入图片描述
解题思路:

要想实现数组元素向右轮转k个位置,可是将数组三次反转来实现

nums = [1,2,3,4,5,6,7], k = 3 为例,最终要得到[5,6,7,1,2,3,4]:

  • 第一次反转:将整个数组反转得到 [7,6,5,4,3,2,1]
  • 第二次反转:将前k个元素进行反转得到[5,6,7,4,3,2,1]
  • 第三次反转:将最后n-k个元素进行反转得到[5,6,7,1,2,3,4],n为数组nums长度

复杂度分析:

  • 时间复杂度O(N)
  • 空间复杂度O(1)

代码实现:

class Solution {
public:void reverse(vector<int>& nums, int start, int stop){int p1 = start;int p2 = stop;int temp;while(p2>p1){temp = nums[p1];nums[p1] = nums[p2];nums[p2] = temp;p1++;p2--;}}void rotate(vector<int>& nums, int k) {int n = nums.size();reverse(nums, 0, n-1);reverse(nums, 0, k%n-1);reverse(nums, k%n, n-1);}
};
http://www.lryc.cn/news/497392.html

相关文章:

  • 【JavaSE】常见面试问题
  • 【超详图文】多少样本量用 t分布 OR 正态分布
  • leetcode hot100【Leetcode 416.分割等和子集】java实现
  • 《算法导论》英文版前言To the teacher第4段研习录:有答案不让用
  • Laravel关联模型查询
  • Clickhouse 数据类型
  • 物联网智能项目如何实现设备高效互联与数据处理?
  • 【云服务器】搭建博客服务
  • 如何抽象策略模式
  • BERT模型的输出格式探究以及提取出BERT 模型的CLS表示,last_hidden_state[:, 0, :]用于提取每个句子的CLS向量表示
  • node.js实现分页,jwt鉴权机制,token,cookie和session的区别
  • 34 基于单片机的指纹打卡系统
  • 【Linux】用户操作命令
  • Y20030018基于Java+Springboot+mysql+jsp+layui的家政服务系统的设计与实现 源代码 文档
  • windows部署PaddleSpeech详细教程
  • 线程条件变量 生产者消费者模型 Linux环境 C语言实现
  • C++ packaged_task
  • 【联表查询】.NET开源 ORM 框架 SqlSugar 系列
  • 嵌入式C编程:宏定义与typedef的深入对比与应用
  • 高级java每日一道面试题-2024年12月03日-JVM篇-什么是Stop The World? 什么是OopMap? 什么是安全点?
  • 【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
  • Dataset用load_dataset读图片和对应的caption的一个坑
  • 【信息系统项目管理师】第7章:项目立项管理 考点梳理
  • 知识库、提示词对大语言模型的影响测试
  • vistat-监控和分析网络状态
  • EasyAnimateV5 视频生成大模型原理详解与模型使用
  • 水稻和拟南芥生命周期中单碱基分辨率的m6A定量分析-文献精读88
  • 学习threejs,使用canvas更新纹理
  • 【笔记2-3】ESP32 bug:PSRAM chip not found or not supported 没有外部PSRAM问题解决
  • 大数据hadoop、spark、flink、kafka发展的过程