【算法筆記】PAT B1008 數(shù)組元素循環(huán)右移問題
https://pintia.cn/problem-sets/994805260223102976/problems/994805316250615808
一個數(shù)組A中存有N(>0)個整數(shù),在不允許使用另外數(shù)組的前提下,將每個整數(shù)循環(huán)向右移M(≥0)個位置,即將A中的數(shù)據(jù)由(A0A1?AN?1)變換為(AN?M?AN?1A0A1?AN?M?1)(最后M個數(shù)循環(huán)移至最前面的M個位置)。如果需要考慮程序移動數(shù)據(jù)的次數(shù)盡量少,要如何設(shè)計移動的方法?
輸入格式:
每個輸入包含一個測試用例,第1行輸入N(1≤N≤100)和M(≥0);第2行輸入N個整數(shù),之間用空格分隔。
輸出格式:
在一行中輸出循環(huán)右移M位以后的整數(shù)序列,之間用空格分隔,序列結(jié)尾不能有多余空格。
輸入樣例:
6 2?
1 2 3 4 5 6
結(jié)尾無空行
輸出樣例:
5 6 1 2 3 4
結(jié)尾無空行
*********************************************************************************************************
思路:題目中明確要求不允許使用另外的數(shù)組,那就在輸出上考慮,先輸出N-M號元素到N-1號元素,再輸出0號元素到N-M-1號元素。值得注意的是就是題目中沒有要求M一定小于N,可以用M=N%M來修正M。依據(jù)就是一個長度為N的序列右移N位后與原序列相同。
標(biāo)簽: