快速旋转数组(或字符串)
来源:互联网 发布:象棋软件ios 编辑:程序博客网 时间:2024/05/21 08:03
介绍一种时间复杂度为O(n),空间复杂度为O(1)的算法。俗称三步翻转法。
例如想把“123456”旋转为“456123”,第一步,旋转123为321,第二部旋转456为654,整个变为“321654”,第三步对此整体做一次旋转,即变为“456123”
class QuickReverse {private:void reverse(int arr[], int begin, int end) {for(int i=begin, j=end; i<j; i++, j--) {int t = arr[i];arr[i] = arr[j];arr[j] = t;}}public:void quickReverse(int arr[], int size, int loc) {reverse(arr, 0, loc);reverse(arr, loc+1, size-1);reverse(arr, 0, size-1);}};
0 0
- 快速旋转数组(或字符串)
- 快速排序、求旋转数组最小数字
- cpp如何快速安全地将文件读入字符串string或字符数组vector<string>的方法
- 获取字符串或数组元素
- 左旋转字符串(数组循环移位)
- 数组循环移位(左旋转字符串)
- 【字符串】旋转字符串(左旋或右旋k个字符)
- 数组字符串系列之,判断两个字符串互为旋转字符串
- js过滤字符串数组或对象数组
- Java 字符串或字符串数组转为 List
- 数组或字典的快速查找
- vim快速删除或复制字符串
- 求字符串,字符,或数组的大小
- fzu2137 字符串hash或后缀数组
- php将数组或字符串写入文件
- Java解析Json字符串--数组或列表
- php中字符串引用变量或数组
- Json字符串转为map或数组或集合
- 3.4 编写一个程序,将用户输入的数字(0~6)转换成相应的星期值输出。如用户输 入 3,则程序输出“Today is Wed”;用户输入 0,则输出“Today is Sun”。如果用户输入 的数据
- BestCoder Round #84 1002 hdu 5748 最长上升子序列
- 54.Automatic Shared Memory Management (ASMM) has been enabled for your database instance. The initia
- zookeeper入门(二)——zk客户端脚本使用
- 3.5 编写一个程序,从标准输入读入某职员的工作时间(以小时计)和每小时的工资 数,计算并输出他的工资。若职员月工作时间超过 40 小时,则超过部分按原工资的 1.5 倍 来计算。
- 快速旋转数组(或字符串)
- 3.7 编写一个程序,以字符形式输入某进制的数字,将其转换为十进制数值并显示出
- libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
- [2016ACM多校] HDU5730 FFT 重叠相加法
- BestCoder Round #84 1004 hdu 5750 数论
- poj2226
- linux基础知识
- 对Dijkstra的一点点理解。
- 3.9 利用下列公式编程计算π的值: