zoukankan
html css js c++ java
数字循环右移 解题报告
数字循环右移
题目如下:
一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0 a1 ⋯an−1 )变换为(an−m ⋯an−1 a0 a1 ⋯an−m−1 )(最后m个数循环移至最前面的m个位置)。
我的思路:
题目明确告诉我们要将每个整数循环向右移动,所以这题可以嵌套循环,逐个移动,容易理解,但效率相对低一点。使用链表可以提高效率。解决这个问题我们需要知道用户传入数据的数量n以及移动的位数m。
方法一:
创建一个数组保存用户传入的数据,每一次循环中先将数组的最后一个数保存到临时变量里,然后逐个右移赋值,再将临时变量赋值给第一个数组元素,进行m个循环即可。
流程图如下:
方法二:
使用尾插法建立一个链表存放用户传入的数据,先连后断,先让表尾指向表头,再找到指定的位置断开并把断开后的下一个结点作为表头
核心代码如下:(建立链表部分省略)
其中m=m%n是为了减少重复循环,for循环是为了找到需要断开的结点。
至于流程图,咕wo咕bu咕hui咕hua。
查看全文
相关阅读:
mongodb分片
mongodb副本集搭建
mongodb数据导入导出
mongodb安装、配置
redis副本集
redis安装,第一天
redis常用命令
mac中安装 RabbitMQ
Vue常用模块
nodejs,koa2常用模块
原文地址:https://www.cnblogs.com/zxc12/p/12049360.html
最新文章
《人月神话》读后感------二
Change R source code
day51 django路由层
day50 django
第二次分享
day49 django
day48 bootscript
day47作业
day47 jquery
day46 bom dom
热门文章
day45 作业
day44 js
小程序 跳转
小程序样式
新版java安装过程
python 时间比较
maven
ast scope
mongodb ttl索引
js hook-eval
Copyright © 2011-2022 走看看