PAT乙类1008之数组元素循环右移问题
生活随笔
收集整理的這篇文章主要介紹了
PAT乙类1008之数组元素循环右移问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、題目
一個(gè)數(shù)組A中存有N(>0)個(gè)整數(shù),在不允許使用另外數(shù)組的前提下,將每個(gè)整數(shù)循環(huán)向右移M(≥0)個(gè)位置,即將A中的數(shù)據(jù)由(A?0A1?AN?1變換為(A?N?M?A?N?1A0A?1?A?N?M?1)(最后M個(gè)數(shù)循環(huán)移至最前面的M個(gè)位置)。如果需要考慮程序移動(dòng)數(shù)據(jù)的次數(shù)盡量少,要如何設(shè)計(jì)移動(dòng)的方法? 輸入格式: 每個(gè)輸入包含一個(gè)測(cè)試用例,第1行輸入N(1≤N≤100)和M(≥0);第2行輸入N個(gè)整數(shù),之間用空格分隔。輸出格式: 在一行中輸出循環(huán)右移M位以后的整數(shù)序列,之間用空格分隔,序列結(jié)尾不能有多余空格。輸入樣例: 6 2 1 2 3 4 5 6 輸出樣例: 5 6 1 2 3 4二、代碼
方法一:(使用了額外的數(shù)組,但是是自己想的)
- 新的函數(shù)
沒(méi)有
*核心思想
之后我發(fā)現(xiàn),我們只需要將a[0] ~ a[n] 循環(huán)移動(dòng),(移動(dòng)后的需要進(jìn)行標(biāo)記,不能再移動(dòng)), 就可以在最后完成移動(dòng)。
所以需要a[n]來(lái)存儲(chǔ)數(shù)組,b[(m+i)%n]=1來(lái)確定是否這個(gè)下標(biāo)的a[(m+i)%n]已經(jīng)移動(dòng)過(guò)!!
*問(wèn)題
方法二:(網(wǎng)上的做法,很精彩)
- 核心思想
循環(huán)n次,也就將各個(gè)值放入了a【n】中
總結(jié)
以上是生活随笔為你收集整理的PAT乙类1008之数组元素循环右移问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 特征计算 - 遍历求值提速 6 万倍 l
- 下一篇: AcWing之重建二叉树