PAT (Basic Level) 1008 数组元素循环右移问题 (20 分)
发布日期:2021-05-04 01:05:22 浏览次数:19 分类:技术文章

本文共 1590 字,大约阅读时间需要 5 分钟。

1.题目描述—

2.思路解析

1、首先可以将这个问题看作把数组ab转换成数组ba(其中a代表数组中前n-p个元素,b代表数组中余下的p个元素,p为循环右移元素个数,n为数组长度)。

先对ab整体求逆,参照数学中的求逆可知:(ab)-1 = b-1a-1 ;然后分别对a和b求逆置,可得 ( b-1-1 (a-1 )-1 =ba;
2、在逆置之前应该首先判断右移的位数,如果右移位数是数组长度的整数倍,则直接将数组元素输出即可。

3.代码

class Program    {
static void Main(string[] args) {
// 读入输入的元素 string[] s = Console.ReadLine().Split(' '); int[] nums = {
int.Parse(s[0]), int.Parse(s[1]) }; string[] str = Console.ReadLine().Split(' '); // 此处注意:应该首先判断右移的位数,如果右移位数是数组长度的整数倍,则直接将 // 数组元素输出即可。 nums[1] %= nums[0]; if (nums[1] != 0) {
Reverse(str, 0, nums[0] - 1); Reverse(str, 0, nums[1] - 1); Reverse(str, nums[1], nums[0] - 1); } for (int i = 0; i < str.Length - 1; i++) {
Console.Write(str[i] + " "); } Console.Write(str[str.Length - 1]); Console.ReadKey(); } /// /// 逆置数组元素 /// /// /// 开始下标 /// 结束下标 public static void Reverse(string[] str,int low,int high) {
for (int i = 0; i < (high - low + 1) / 2; i++) {
Swap(str, low + i, high - i); } } private static void Swap(string[] str, int i, int v) {
string temp = str[i]; str[i] = str[v]; str[v] = temp; } }

4.总结

因为逆置之前并没有判断右移位数和数组长度的关系,导致部分测试没有通过,所以要注意这个细节:在逆置之前应该首先判断右移的位数,如果右移位数是数组长度的整数倍,则直接将数组元素输出即可。

转载地址:https://blog.csdn.net/weixin_45027619/article/details/116228018 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Basic Level)1015 德才论 (25 分)
下一篇:PAT (Basic Level)1007 素数对猜想 (20 分)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月01日 14时38分53秒

关于作者

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

推荐文章

c 泛型与java泛型_C ++和Java中的“泛型”类型之间有什么区别? 2019-04-21
java 返回实体对象_java 封装返回结果实体类 返回结果以及错误信息 2019-04-21
java web 防止sql注入攻击_JavaWeb防注入知识点(一) 2019-04-21
java ssm 异常分类_SSM项目常见的异常与处理提示(一) 2019-04-21
java定义矩形类_Java定义矩形类 2019-04-21
java变量怎么变常量_Java的常量与变量是什么?怎么学习呀? 2019-04-21
java开发招聘试题_客户化开发招聘试题-Java开发.doc 2019-04-21
java jdk win10 1335_win10下安装java jdk,tomcat 2019-04-21
java list二分查找_java中的ArrayList和LinkedList的二分查找速度比 | 学步园 2019-04-21
php中的变量名称用什么表示,PHP变量,方法,类等名称中的有效字符是什么? 2019-04-21
pic32mx是什么cpu_PIC32MX单片机外设库使用(Ⅰ)- 系统时钟及I/O口基本设置 2019-04-21
用c 在mysql上存图片_C 批量保存图片进 mysql 利用MYSQL_BIND插入longblob 2019-04-21
mysql 1045 28000_mysql报关于用户密码1045(28000),几种处理方法 (zhuan) 2019-04-21
solr比mysql的优势_Solr与Elasticsearch的优缺点比较总结和归纳 2019-04-21
华为博士招聘上机考试题目_牛客网-华为-2020届校园招聘上机考试-3 2019-04-21
python中for可以做变量名吗_Python中使用动态变量名的方法 2019-04-21
mysql 日期转换天数_MySQL 日期操作 增减天数、时间转换、时间戳 2019-04-21
java对象去重复_JAVA中List对象去除重复值的方法 2019-04-21
java bss_[转] .bss段和.data段的区别 2019-04-21
java上传图片损坏_大神求助 上传图片后 图片损坏 2019-04-21