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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:1009 说反话
下一篇:1007 素数对猜想

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月10日 14时10分33秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【Leetcode刷题篇】leetcode148 排序链表 2019-04-26
【面试篇】Java中String、StringBuilder与StringBuffer的区别? 2019-04-26
【面试篇】Java对象的hashCode()相同,equals()一定为true吗? 2019-04-26
【面试篇】Java中static和final关键字的作用是什么? 2019-04-26
【面试篇】Java中接口和抽象类的区别是什么? 2019-04-26
【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流 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
【Java网络编程与IO流】SpringBoot + WebSocket + Netty实现实时的服务器消息推送 2021-06-29
【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