1008 数组元素循环右移问题
发布日期:2022-04-07 05:22:43
浏览次数:47
分类:技术文章
本文共 756 字,大约阅读时间需要 2 分钟。
1008 数组元素循环右移问题
题目描述
解题思路
本题方法较多,博主就讲一个做法。
还有一个思路:1.全部逆序,2.前面n个逆序,剩余后面的逆序。 读者自己实现一下,用库函数更简单一些首先题目要求是不能使用另一个数组。
我们每次都右移一个数字,在右移的开始前,先保存最右边的数字,然后进行覆盖,最后把保存的数字再覆盖给首元素,这是第一次右移。后面的每一次都是这样实现的,可以递归实现。
代码
#include#include #include void f(int* arr,int m,int n){ int temp = arr[m-1]; int i = 0; if (n == 0) return; for (i = m; i >0; i--)//从后往前覆盖 { arr[i-1] = arr[i -2]; } arr[0] = temp;//让最后一个回到第一个位置 f(arr, m, n-1);//下一次右移}int main(){ int m, n; scanf("%d%d", &m, &n); int* arr = (int*)malloc(m * sizeof(int)); assert(arr); int i = 0; for (i = 0; i < m; i++) { scanf("%d", arr + i); } f(arr,m, n); for (i = 0; i < m; i++) { printf("%d", arr[i]); if (i != m - 1) printf(" "); } free(arr); arr = NULL; return 0;}
转载地址:https://blog.csdn.net/m0_60598323/article/details/123820150 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月10日 14时10分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Leetcode刷题篇】leetcode148 排序链表
2019-04-26
【面试篇】Java对象的hashCode()相同,equals()一定为true吗?
2019-04-26
【面试篇】Java中static和final关键字的作用是什么?
2019-04-26
【面试篇】Java中接口和抽象类的区别是什么?
2019-04-26
【Java网络编程与IO流】Java中BIO、NIO、AIO的区别是什么?
2019-04-26
【Leetcode刷题篇】leetcode136 只出现一次的数字
2019-04-26
spring boot整合thymeleaf,支持JSP和HTML页面开发
2019-04-26
【Java网络编程与IO流】Spring boot整合SSE实现服务器实时推送流信息
2019-04-26
【Leetcode刷题篇】leetcode141 环形链表II
2021-06-29
【Leetcode刷题篇】leetcode160 相交链表
2019-04-26
【Leetcode刷题篇】leetcode169 多数元素
2019-04-26
【Leetcode刷题篇】leetcode461 汉明距离
2019-04-26
【Leetcode刷题篇】leetcode204 计数质数
2019-04-26
【Leetcode刷题篇】leetcode70 爬楼梯
2019-04-26
【Leetcode刷题篇】leetcode739 每日温度
2019-04-26
【Leetcode刷题篇】leetcode121买卖股票的最佳时机
2019-04-26
【面试篇】Java多线程并发-Java关键字volatile详解
2019-04-26