给定一个大小为 n 的数组和多个整数值,我们需要从给定索引 k 开始旋转数组。
我们希望从索引 k 开始旋转数组,如下所示 – p>
示例
Input: arr[] = {1, 2, 3, 4, 5} K1 = 1 K2 = 3 K3 = 6Output: 2 3 4 5 1 4 5 1 2 3 2 3 4 5 1
登录后复制
算法
STARTStep 1 -> Declare function void leftRotate(int arr[], int n, int k) Declare int cal = k% n Loop For int i=0 and i In main() Declare array a[]={ 1,2,3,4} Declare int size=sizeof(a)/sizeof(a[0]) Declare int k=1 Call leftRotate(a, size, k) Set k=2 Call leftRotate(a, size, k) Set k=3 leftRotate(a, size, k)STOP
登录后复制
示例
#include using namespace std;void leftRotate(int arr[], int n, int k){ int cal = k % n; for (int i = 0; i";}int main(){ int a[] = { 1,2,3,4}; int size = sizeof(a) / sizeof(a[0]); int k = 1; leftRotate(a, size, k); k = 2; leftRotate(a, size, k); k = 3; leftRotate(a, size, k); return 0;}
登录后复制
输出
如果我们运行上面的程序,那么它将生成以下输出
2 3 4 13 4 1 24 1 2 3
登录后复制
以上就是在C程序中以O(n)时间复杂度和O(1)空间复杂度打印数组的左旋转的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3084196.html