循环右移,要求时间复杂度为O(n)且尽可能的少使用辅助空间
#include<iostream>
using namespace std;
#define ARRAY_LENGTH 9
int main(){extern void shiftRight(int *arr ,int begin ,int k);extern void show(int *arr ,int length);int arr[]={1,2,3,4,5,6,7,8,9};cout<<"循环移位前:"<<endl;show(arr,ARRAY_LENGTH);shiftRight(arr,ARRAY_LENGTH,2);//循环移动2位cout<<"循环移位后:"<<endl;show(arr,ARRAY_LENGTH);
}/*
将arr数组中[begin ,end]中的数据逆序
*/
void reverse(int *arr ,int begin ,int end){int temp=0;while(begin <end){temp=arr[begin];arr[begin]=arr[end];arr[end]=temp;begin++;end--;}
}
void shiftRight(int * arr ,int length ,int k){k=k%length;//移动k位与移动(k+n*length)位相同reverse(arr,0,length-k-1);//逆序前(length-k)位reverse(arr ,length-k,length-1);//逆序后k位reverse(arr ,0,length-1);//全部逆序
}
void show(int *arr ,int length){for(int i=0;i<length;i++){cout<<arr[i]<<"\t";}cout<<endl;
}
循环右移,要求时间复杂度为O(n)且尽可能的少使用辅助空间相关推荐
- 方阵循环右移c语言,C语言第二次实验报告 - osc_zfz30hgc的个人空间 - OSCHINA - 中文开源技术交流社区...
#一.实验题目,设计思路与实现方法 题目一 11-6 方阵循环右移(20 分) 本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0.1.⋯.n−1列变换为第n−m.n−m+1. ...
- PAT (Basic Level) Practice1008 数组元素循环右移问题
1008 数组元素循环右移问题 一.题目 一个数组A中存有N(>0)N(>0)N(>0)个整数,在不允许使用另外数组的前 提下,将每个整数循环向右移M(≥0)M(≥0)M(≥0)个位 ...
- 【步步惊心】数组循环右移
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量. 不合题意的解法如下: 我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次.abcd ...
- (C++)1008 数组元素循环右移问题
#include<cstdio> //注意:不允许使用另外数组,序列结尾不能有多余空格,不能直接认为right<n //1.读入数组长度,和右移位数,读入数组 //2.未必要对实际数 ...
- java byte 循环左移 循环右移 rotateLeft rotateRight
java byte 循环左移 循环右移 rotateLeft rotateRight 1.概念. 循环左移: eg1:byte in = (byte) 0x01;[0000 0001]则循环左移2位后 ...
- Basic Level 1008. 数组元素循环右移问题 (20)
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1--AN-1)变换为(AN-M -- AN-1 A0 ...
- 实验8.1 指针与数组 6-6 数组循环右移
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置. 函数接口定义: int ArrayShift( int a[], int ...
- 7-1 数组元素循环右移问题 (20 分)
7-1 数组元素循环右移问题 (20 分) 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1 ⋯AN−1 ...
- PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
题目 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0 A1 ⋯AN−1 )变换为(AN−M ...
最新文章
- 此心拖泥带水,是人生最苦处
- matlab之unwrap函数
- ubuntu下 显示no module named “lib“或 “lib.xxx“
- GDCM:gdcm::Value的测试程序
- Java领域的对象如何传输-如何解决报错的问题呢?
- 【渝粤题库】陕西师范大学201941 Java程序设计 作业(专升本)
- 996. Number of Squareful Arrays
- jhipster 配置 mysql_JHipster 基础使用
- Xcode 4.2 中的Automatic Reference Counting (ARC)
- java契约_基于契约式设计的Java编译器实现
- Android Service用法知识点的讲解
- OpenCV.js 快速入门指南
- 计算机九宫格游戏怎么玩,《九宫格数独》怎么玩 数独玩法介绍
- mac 如何安装/运行 kakfa
- 照片模糊怎么办?教你简单三步瞬间修复照片清晰度!
- Python Web项目
- 传奇服务器包裹元宝数量显示,GOM传奇服务端测试记录元宝,传奇GM版本库测试区记录元宝数量教程...
- 中控考勤机使用 zkemkeeper SDK订阅考勤数据事件失效解决方式
- 互联网废品回收+废品回收小程序开发这些实际功能要有
- camunda 多租户
热门文章
- windows mobile+webservice+mysql
- delegate和event(转载too)
- 搜索引擎优化不是网页标签优化
- [EffectiveC++]item22:Declare data members private
- 转:MySQL史上最全性能优化方式
- 【bzoj1304】[CQOI2009]叶子的染色 树形dp
- 获取指定长度的随机字符串
- *2-3-7-加入field_automation机制
- python 上传文件下载图片
- eclipse error pages打红X的解决方法