题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

示例1:

输入: [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:

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

题目分析:其实这就是把数组的后面k个元素按照从后到前依次插入到数组的最前面,然后删除后面的k个元素。

源代码:

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>using namespace std;void rotate(vector<int>& nums, int k)
{int num = nums.size()-1;vector <int>::iterator it = nums.begin();for (int i = 0; i < k; i++){nums.insert(nums.begin(),nums[num]);//把nums[num]插入到nums数组的最前端nums.pop_back();}
}int main()
{vector<int> A = { 3, 5, 7, 9, 11 };rotate(A,2);//for (int i = 0; i < A.size(); i++){cout << A[i] << endl;}system("pause");return 0;
}

最终输出的结果:

9
11
3
5
7

LeetCode之旋转数组相关推荐

  1. 刷爆LeetCode之旋转数组

    旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7]和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右 ...

  2. LeetCode 初级 - 旋转数组

    旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向 ...

  3. leetcode初级———旋转数组的多种算法总结

    题目描述: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. (来源:leetcode) 1.数组拆分 //经观察发现:将数组元素全部后移k单位即将后 k%length 个元素前 ...

  4. LeetCode 189. 旋转数组(环形替换)

    1. 题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向 ...

  5. Leetcode 189. 旋转数组 解题思路及C++实现

    方法一:暴力方法 解题思路: 用栈存储后面的 k 个元素,然后将 nums 数组的元素往后挪 k 位,然后再将栈中的元素存进nums数组中. class Solution { public:void ...

  6. Leetcode 189. 旋转数组 (每日一题 20210909)

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数.进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题. 你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问 ...

  7. leetcode(189) 旋转数组

    **给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 进阶: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题. 你可以使用空间复杂度为 O(1) 的 原地 算法解 ...

  8. leetcode练习旋转数组

    第一中方法即为hash的方法: 第二种采用了循环,但是不全面,输入测试用例为[1,3], k=3 时,无法进行交换: class Solution { public:void rotate(vecto ...

  9. leetcode 189. 旋转数组

    题目 思路 先左边翻转,再右边翻转,最后整体翻转. 注意存在翻转超过一个周期的情况,要先取余,避免越界. 题解 class Solution {public void rotate(int[] num ...

  10. LeetCode 1238. 循环码排列(格雷编码+旋转数组)

    1. 题目 给你两个整数 n 和 start.你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p,并且满足: p[0] = start p[i] 和 p[i+1] 的二进制表示形式只 ...

最新文章

  1. 《设计模式解析(第2版)》
  2. Nature:依靠锰的氧化实现细菌的化能自养生长
  3. [转]对贡献有激情,对回报有信心
  4. FFMPEG 源码分析
  5. netapp存储常用命令
  6. mysql与python交互
  7. 乐视网:公司董事、总经理、财务总监张巍因个人原因辞职
  8. 软件测试—软件测试基础知识—测试用例设计的方法之场景法、正交试验法和错误推断法
  9. GetTickCount() 函数的作用和用法(转)
  10. prettier 指“北”
  11. 什么是数据脱敏(Data Masking)?
  12. 安装 Redis的Python客户端redis-py
  13. 最值得收藏的 算法分析与设计 全部知识点思维导图整理(北大慕课课程)
  14. 大学计算机之软件设计程序框图,《程序框图、顺序结构》教学设计
  15. GATK官方教程 / 概述及工作前的布置
  16. mysql大于小于索引问题
  17. 【专利】如何画专利结构图纸
  18. 网页采集器-八爪鱼采集器
  19. Cas实现子系统登录互踢
  20. PLY文件格式及其MATLAB读写操作

热门文章

  1. 第二百二十七节,jQuery EasyUI,ComboTree(树型下拉框)组件
  2. UI自动化测试篇 :Selenium2(Webdriver)TestNG自动化测试环境搭建
  3. Unable to update index for central|http://repo1.maven.org/maven2
  4. sql语句如何拼接Java变量
  5. Eclipse中如何安装Spring Tool Suite(STS)
  6. Newtonsoft.Json的使用
  7. 内存泄漏分析工具tMemoryMonitor(转载)
  8. Boost Asio Work类
  9. Struts与Hibernate整合完成一个小案例
  10. 用最简单的例子告诉你kafka是怎么用的