将N个字符的数组,循环右移K位。时间复杂度O(N)
来源:互联网 发布:做人工智能的企业 编辑:程序博客网 时间:2024/05/21 16:41
思路:
示例:char a[] = {nihao},若k为12,size为5.
1.若k比数组的size大很多,则求模,得到适当大小的k值。k=k%size=2;
2.将【0,size-k)区间的值反转。{hinao}
3.将【size-k,size)区间的值反转。{hinoa}
4.将【0,size)区间的值反转。{aonih}
参考代码如下:
void Reverse(char a[],int l,int r){if(a==NULL)return;while (l<r)swap(a[l++],a[r--]);}void RightShift(char a[],int k,int size){if (a!=NULL){if(k>size)k %= size;Reverse(a,0,size-k-1);Reverse(a,size-k,size-1);Reverse(a,0,size-1);}}
阅读全文
0 0
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)。
- 把一个含有N个元素的数组循环右移K位, 要求时间复杂度为O(N)
- 【数学】数组循环右移k位,要求时间复杂度为O(n)
- 将N个字符的数组,循环右移K位。
- 试设计一个算法,将数组A(0..n-1)中的元素循环右移k位,并要求空间复杂度为O(1),时间复杂度为O(n)。
- 每日一题——字符串循环右移K位,时间复杂度O(N)
- 在时间复杂度O(n)内,实现将数组A[n]中所有元素左循环移n位
- 将数组 a[n]所有的元素循环右移k位
- 把一个含有N个元素的数组循环右移K位
- 循环右移,要求时间复杂度为O(n)且尽可能的少使用辅助空间
- 将数组A中的元素A[0..n-1]循环右移k位
- 将一个具有n个元素的数组向左循环移动i个位置,使用O(n)复杂度
- 字符串移动k位的时间复杂度o(n)空间复杂度o(1)的解法
- 已知数组A[1...n] ,确定第K小元素 算法的时间复杂度O(n)
- 将数组循环右移k位
- textarea标签
- Centos安装gevent
- 驱动-按键-中断模式
- [leetcode] 11. Container With Most Water
- js根据图片路径地址判断图片是否存在的几种方法
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- Web攻击原理及其防护
- 指针面试例题解析———总结
- 《利用Python进行数据分析》笔记---第7章数据规整化:清理、转换、合并、重塑
- Liunx下安装mysql数据库
- springcloud项目(eureka服务发现+zuul网关)部署至docker中tomcat
- 打包静态库--包含三方依赖
- 图像旋转90度(CImage类实现)(不同的位深度)
- c/c++ 面试笔试知识点----牛客网(4)