数组循环移动 空间复杂度O(1)
---恢复内容开始---
题目大意:
输入元素个数,输入数组,输入右移步数,输出结果;
基本思路:
可以把数组(从下标为0开始存储)看成两部分,分别是【0,n-step-1】,【n-step,n-1】,然后两部分分别倒置,然后将整个数组倒置,就得到了正确结果;
至于为什么是这样,你可以找个例子看看,然后理论证明上吗,哇,脑补一下就知道了。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int arr[100];
void Reverse(int l,int r){int mid=(l+r)/2;for(int i=l;i<=mid;i++){int tmp=arr[i];arr[i]=arr[r+l-i];arr[r+l-i]=tmp;}return;
}
int main(){int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&arr[i]);}int step;scanf("%d",&step);Reverse(0,n-step-1);Reverse(n-step,n-1);Reverse(0,n-1);for(int i=0;i<n;i++){printf("%d ",arr[i]);}return 0;
}
---恢复内容结束---
转载于:https://www.cnblogs.com/imzscilovecode/p/8005386.html
数组循环移动 空间复杂度O(1)相关推荐
- 数组循环向左移动k位的算法
数组循环向左移动k位的算法, 我在课本上只看到了方法一,暂且称为颠倒交换法, 方法二是我自己想出来的,暂且称为循环赋值法. 方法一:颠倒交换法 算法描述:循环左移k位, 先把前面 0 到 k-1位置的 ...
- Java实现 LeetCode 457 环形数组循环
457. 环形数组循环 给定一个含有正整数和负整数的环形数组 nums. 如果某个索引中的数 k 为正数,则向前移动 k 个索引.相反,如果是负数 (-k),则向后移动 k 个索引.因为数组是环形的, ...
- vue 循环遍历list_vue使用map代替Aarry数组循环遍历的方法
需求:根据主键id来找到对应的数组下标 原本的方法是使用for循环遍历该数组,变量 i 就是下标,问题在于,如果有多重for循环,就会导致性能大大下降,数据也容易出错 因此使用map,让数组(原本是l ...
- 完美解决小程序一维数组循环渲染列表不够用问题
完美解决小程序一维数组循环渲染列表不够用问题 参考文章: (1)完美解决小程序一维数组循环渲染列表不够用问题 (2)https://www.cnblogs.com/jessical626/p/6363 ...
- php大数组循环嵌套的性能优化
一.前言 博主最近在用elasticsearch做项目,查出来的数据都是数组,在筛选数据组装数据的时候,难免会碰到循环嵌套的问题.如果两个50000的数组循环嵌套,那实际运算则是50000*50000 ...
- js 数组遍历符合条件跳出循环体_Javascript数组循环遍历之forEach详解
1.js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i除此之外,也可以使用较简便的forEach 方式 2.forEach函数. Firefox 和Chrome 的Arra ...
- foreach数组循环结构体
foreach数组循环结构体 foreach循环遍历任何维数的数组 Systemverilog增加了foreach循环,它可用来对一维或多维数组中的元素进行迭代,而不必指定数组每个维度的宽度.fore ...
- Javascript 数组循环遍历之forEach
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- 20200120 数据结构和算法之 数组循环队列的实现
数组循环队列针对数据量不大的情况下使用,可以快速地实现元素的入队和出队.入队和出队遵循先进先出(FIFO)的原则.结构体组成如下: typedef int datatype; typedef stru ...
- js三层数组循环遍历(笛卡尔积)运算,并生成顺序
笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 [1] . 假 ...
最新文章
- 一些Jquery操作
- 论文笔记:HKMF-T: Recover From Blackouts in TaggedTime Series With Hankel Matrix Factorization
- org.hibernate.NonUniqueObjectException 异常处理
- 非常好的dllimport 文章--在 C# 中通过 P/Invoke 调用Win32 DLL
- html 标题树,html树
- 初识Mysql(part17)--我需要知道的3条Mysql语句之联结
- C和指针之学习笔记(3)
- 【模板】高精度 [高精度]
- python_83_random_应用验证码
- Windows 7下ghost Windows XP不能启动的解决方法
- 60套漂亮的的免费 PSD 界面设计元素包资源(系列二)
- 飞机大战小游戏2.0
- 人工智能的认知技术,主要包含哪些?
- 搜索引擎优化、常用SEO优化方法总结
- 教育教学微课题研究方案——实习调研论文
- iPhone开发Swift基础08 加密与安全
- 苹果删除照片不释放内存_别再胡乱清理垃圾了,只要删除这6个文件夹,瞬间释放20GB内存...
- H G W S哪一个不是状态函数_师大版成语词典发布!不学不是师大人!
- 在腾讯这一年,坚守初心持续单纯!
- 使用Flexible实现手淘H5页面的终端适配
热门文章
- MongoDB几个完整的库表设计实例
- protobuf编码原理及其在schema格式转换的应用
- win10安装ipython_win10下安装Anaconda的教程(python环境+jupyter_notebook)
- java io 高级,JavaSE - [10] 高级部分之IO流
- 30天自制操作系统之叠加处理
- centos下安装和卸载jdk
- python表格模板_python 网站 使用表单和模板
- PLC和MCU单片机有什么差异
- endnote导入参考文献及国标(Chinese standard)
- 俞昆20155335《网络对抗》MSF基础应用