轮转数组

简介: 轮转数组

轮转数组(算法题)

题目:给你一个数组,将数组中的元素向右轮转 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]

提示:

  • 1 <= nums.length <= 105
  • -231 <= nums[i] <= 231 - 1
  • 0 <= k <= 105

思路

可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原数组下标为 iii 的元素放至新数组下标为 (i+k) mod n的位置,最后将新数组拷贝至原数组即可

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();
        vector<int> newArr(n);
        for (int i = 0; i < n; ++i) {
            newArr[(i + k) % n] = nums[i];
        }
        nums.assign(newArr.begin(), newArr.end());
    }
};
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
谷歌AI Gemini 官方网站是什么?国内如何使用Gemini 1.5 pro
Gemini是Google开发的先进大型语言模型(LLM),旨在处理多种自然语言处理任务,如文本生成、翻译、摘要和对话生成。作为Google AI项目的一部分,Gemini结合了最新的研究成果和技术,显著提高了自然语言处理的准确性和效率。该模型经过大量文本数据的训练,使其能够理解和生成高质量的文本。
|
编译器
STM32的HAL库开发系列 - GPIO中断/外部中断EXTI
STM32的HAL库开发系列 - GPIO中断/外部中断EXTI
1307 0
|
XML NoSQL 关系型数据库
微信公众平台开发(二)——access_token、日志
微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。
微信公众平台开发(二)——access_token、日志
|
机器学习/深度学习 大数据 数据挖掘
向量、矩阵概念|学习笔记
快速学习向量、矩阵概念
向量、矩阵概念|学习笔记
|
机器学习/深度学习 存储 人工智能
AI·OS新探索:端到端算法工程平台
本话题将围绕深度算法学习工程,详细介绍在淘宝搜索,推荐,广告业务的最佳实践,和大家详细阐述,阿里是如何构建一个高效的端到端AI算法平台。
19293 0
AI·OS新探索:端到端算法工程平台
|
存储 Java 程序员
论国内java未来2022-2026年的变化
论国内java未来2022-2026年的变化
2386 0
|
数据挖掘 索引 Python
数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(1)
数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(1)
863 0
数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(1)
什么是UV?
转自http://www.cnblogs.com/jenry/p/4083415.html   1.什么是UV?   对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。
|
传感器 虚拟化
故障案例-ESXI6.5主机无法发生重启,并有发生网卡无故UP DOWN的事件
VSAN环境下的一台ESXI6.5主机无法发生重启,并发生网卡无故UP DOWN的事件.以下是故障分析过程和解决方法
3684 0

热门文章

最新文章