189. 轮转数组

通过三次反转操作,可以实现数组的轮转:

  1. 反转整个数组: 将数组完全反转,使得原数组的后 k 个元素移动到数组的前面。
  2. 反转前 k 个元素: 将前 k 个元素反转,恢复它们的原始顺序。
  3. 反转后 n - k 个元素: 将后 n - k 个元素反转,恢复它们的原始顺序。

最终,数组 nums 被向右轮转了 k 个位置。

  • 时间复杂度: O(n),因为反转操作的时间复杂度为 O(n)。
  • 空间复杂度: O(1),没有使用额外的空间。
class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""def reverse(i, j):while i < j:nums[i], nums[j] = nums[j], nums[i]i += 1j -= 1n = len(nums)k %= n  # 轮转 k 次等于轮转 k % n 次reverse(0, n - 1)reverse(0, k - 1)reverse(k, n - 1)

反思:树立数组的思想,看到数组元素的,将他们想成一个整体来看,不要只想着他们是一个一个元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910627.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910627.shtml
英文地址,请注明出处:http://en.pswp.cn/news/910627.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AR 眼镜之-条形码识别-实现方案

目录 &#x1f4c2; 前言 AR 眼镜系统版本 条形码识别 1. &#x1f531; 技术方案 1.1 技术方案概述 1.2 实现方案 1&#xff09;相机App显示模块 2&#xff09;算法so库JNI模块 3&#xff09;算法条形码识别模块 2. &#x1f4a0; 实现相机App显示模块 2.1 创建 Ba…

华为云 Flexus+DeepSeek 征文|基于 CCE 集群部署 Dify 平台工作流:科研论文翻译与 SEO 优化工具的全流程设计实践

华为云 FlexusDeepSeek 征文&#xff5c;基于 CCE 集群部署 Dify 平台工作流&#xff1a;科研论文翻译与 SEO 优化工具的全流程设计实践 背景 作为被科研论文折磨已久的大学生&#xff0c;希望研究成果能被更多人看到&#xff0c;尤其是在学术全球化的趋势下&#xff0c;论文翻…

C++对象继承详解:从入门到精通

继承是面向对象编程的三大特性之一&#xff0c;也是C中实现代码复用和多态的重要机制。本文将带你深入理解C继承的核心概念与应用。 一、继承的基本概念 1.1 什么是继承&#xff1f; 继承允许我们基于已有的类创建新类&#xff0c;新类&#xff08;派生类&#xff09;可以继…

Jenkins安装与配置全攻略:从入门到高级功能实战

在DevOps实践中,Jenkins作为最流行的持续集成工具之一,扮演着至关重要的角色。本文将全面介绍Jenkins的安装、配置及高级功能使用,帮助开发、运维和测试团队快速搭建高效的CI/CD流水线。 一、Jenkins安装 1.1 环境准备 Jenkins官网:https://jenkins.io 注意:Jenkins 2…

[OS_26] 计算机系统安全 | CIA原则 | 侧信道攻击

系统调用是唯一访问操作系统对象的途径 拒绝越权访问 →→ Confidentiality拒绝越权修改 →→ Integrity(再加上公平资源调度 →→ Availability) 在操作系统 API 上&#xff0c;我们可以构建命令行工具、编译器、数据库、浏览器等丰富的应用。 当越来越多用户开始共享计算机、…

Chromium 136 编译指南 macOS篇:编译优化技巧(六)

1. 引言 在现代软件开发的高效化进程中&#xff0c;编译优化已经从简单的性能调优发展为一门综合性的工程科学。对于Chromium 136这样一个包含超过2500万行代码的超大规模项目而言&#xff0c;编译时间往往成为制约开发效率的关键瓶颈。在典型的开发场景中&#xff0c;一次完整…

Spark教程6:Spark 底层执行原理详解

文章目录 一、整体架构概述二、核心组件详解1. SparkContext2. DAG Scheduler3. Task Scheduler4. Executor 三、作业执行流程1. DAG 生成与 Stage 划分2. Task 调度与执行3. 内存管理 四、Shuffle 机制详解1. Shuffle 过程2. Shuffle 优化 五、内存管理机制1. 统一内存管理&am…

xlsx-style 插件批量导出多个sheet表格excel中遇到的问题及解决

Vue2中 前端界面导出表格&#xff0c;使用XLSXS插件版本(^0.8.13)导出表格存在表格背景颜色无法正常展示&#xff0c;百分比数据没有正常展示 【有条件的尽量先升级高版本插件&#xff0c;此插件版本对样式支持度不够】 优先考虑插件版本升级 同样的使用方法在vue3中没有出现错…

Java后端与Vue前端项目部署全流程:从环境配置到Nginx反向代理

文章目录 1. 准备项目所需的环境2. 后端项目打包步骤 1&#xff1a;使用 Maven 打包步骤 2&#xff1a;定位生成的 JAR 包步骤 3&#xff1a;上传 JAR 包到 Linux 系统步骤 4&#xff1a;验证 Java 环境步骤 5&#xff1a;启动 JAR 包 3. 前端项目打包步骤 1&#xff1a;执行 B…

Mybatis踩坑之一天

background: 对接AML系统&#xff0c;日间实时需要送交易对手要素过去&#xff08;目前主要是交易对手全名&#xff09;&#xff0c;夜间需要将历史交易送AML进行回溯&#xff0c;交互方式是文件。文件要素为日期、对手类型、对手名、交易流水之类。 设置对送AML的文件设计表…

【PyTorch】分布式训练报错记录-ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1)

最近&#xff0c;我在服务器上起基于PyTorch分布式框架的预训练实验&#xff0c;起初实验都在顺利进行&#xff0c;但是当我们把模型的深度与宽度调大之后&#xff0c;模型在训练几代之后便会出现如下的报错&#xff1a; WARNING:torch.distributed.elastic.multiprocessing.a…

有哪些词编码模型

有哪些词编码模型 词编码模型:是将自然语言符号映射为稠密的高维向量,使语义相近的词汇在向量空间中位置接近。 不过,也有部分模型会考虑字母或字符信息,如基于字节对编码(BPE)的模型会将单词拆分成子词,这里的子词可能是字母组合。 词编码模型的原理主要是通过机器学…

Mono 功能介绍与使用示例

Mono 功能介绍与使用示例 一、核心概念与特性 Mono 是 Spring Reactor 框架中的核心组件&#xff0c;属于响应式编程&#xff08;Reactive Programming&#xff09;模型&#xff0c;专注于处理包含 0 或 1 个元素 的异步序列[1][2][5]。其核心特点包括&#xff1a; 异步非阻…

5060Ti双显卡+LLaMA-factory大模型微调环境搭建

查看环境确定安装版本安装CUDA12.8安装Anaconda安装Visual Studio C桌面开发环境&#xff08;编译llama.cpp需要&#xff09;安装cmake(编译llama.cpp需要)安装llama.cpp(用于量化)安装huggingface-cli安装llama-factory安装PyTorch2.7.0安装bitsandbytes安装flash-attention加…

Lnmp和XunRuiCMS一键部署(Rocky linux)

先上传XunRuiCMS-Study.zip包到当前目录&#xff0c;可以去官网下载 #!/bin/bash # function: install nginx mysql php on Rocky Linux 9.5 with fixed PHP-FPM configip$(hostname -I | awk {print $1}) yhxunrui passwordxunrui123# 检查是否为root用户 if [ "$USER&qu…

高精度OFDR设备在CPO交换机中的应用

光电共封装&#xff08;CPO&#xff09;交换机的特点 核心需求&#xff1a;CPO将光模块与交换芯片集成封装&#xff0c;缩短电互连距离&#xff0c;降低功耗和延迟&#xff0c;但需解决以下挑战&#xff1a; 1.光器件微型化&#xff1a;硅光芯片、光纤阵列等需高精度制造。 …

Vulkan 通过 CMake 集成 Dear ImGUI

一、 目录与文件部署 从官网获取 IMGUI 代码库&#xff0c;在项目 extern 目录下新建 imgui 目录&#xff0c;将相关文件复制进去&#xff0c;构建出如下目录结构&#xff1a; . ├── build ├── extern │ ├── glfw │ ├── glm │ └── imgui │ ├…

Linux设备框架:kset与kobject基本介绍

系列文章目录 Linux设备框架&#xff1a;kset与kobject基本介绍 [link] Linux设备框架&#xff1a;kset与kobject源码分析 [link] kset与kobject基本介绍 一、前言二、kobject、kset和设备的关系2.1 kset 结构体2.2 kobject 结构体 三、总结 一、前言 Linux 设备模型如同一座拥…

【AI论文】扩展大型语言模型(LLM)智能体在测试时的计算量

摘要&#xff1a;扩展测试时的计算量在提升大型语言模型&#xff08;LLMs&#xff09;的推理能力方面已展现出显著成效。在本研究中&#xff0c;我们首次系统地探索了将测试时扩展方法应用于语言智能体&#xff0c;并研究了该方法在多大程度上能提高其有效性。具体而言&#xf…

LeapMotion-PhysicalHandsManager 类详解

PhysicalHandsManager 类详解 这个类是 Ultraleap 物理手交互系统的核心管理器,负责处理手部物理交互的不同模式。下面我将详细解析这个类的结构和功能: 类概述 PhysicalHandsManager 继承自 LeapProvider,是物理手交互系统的中央控制器: public class PhysicalHandsMa…