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。
查看全文
相关阅读:
pug 基础篇
胡里胡哨-老师改卷纸
javaScript 原生技巧
angular9的学习(十二)插槽
typescript高级编程(二)
typescript高级编程(一)
ActiveMq 使用指北
基于ZooKeeper的分布式锁实现
windows下配置启动脚本并设置开机自启及相应关闭脚本
腾讯位置服务JavaScript API GL实现文本标记的碰撞避让
原文地址:https://www.cnblogs.com/zxc12/p/12049360.html
最新文章
【HttpRunner v3.x】笔记—8.运行testcase的几种方式
【jmespath】—4. 进阶 Flatten Projections
【jmespath】—3. 进阶 Object Projections
【jmespath】—2. 进阶 List and Slice Projections
【jmespath】—1. 基础用法
Win10专业版使用VSCode调试ITensor项目
Ubuntu系统下ITensor的安装与测试
Windows常用批处理文件-复制、解压
matplotlib常见问题-画图中文乱码
Windows常用注册表文件-修改右键菜单
热门文章
安装Ubuntu系统后的配置工作
蓝牙Beacon广播数据包格式以及解析
利用Github Pages创建的Jekyll模板个人博客添加阅读量统计功能
Python微信公众号开发
MySQL的简单使用
javascript基础的查缺补漏
ES6+javaScript原型
javascript原生技巧篇
angular学习进阶(十五)
angular9的学习(十四)
Copyright © 2011-2022 走看看