2021.1.5
1.類型
數(shù)組
2.題目描述
一個數(shù)組A中存有N(N>0)個整數(shù)孵运,在不允許使用另外數(shù)組的前提下治笨,將每個整數(shù)循環(huán)向右移M(M>=0)個位置旷赖,即將A中的數(shù)據(jù)由(A0 A1 ……AN-1 )變換為(AN-M …… AN-1 A0 A1 ……AN-M-1 )(最后M個數(shù)循環(huán)移至最前面的M個位置)等孵。如果需要考慮程序移動數(shù)據(jù)的次數(shù)盡量少俯萌,要如何設(shè)計移動的方法咐熙?(1<=N<=100,M>=0)
示例
輸入
6,2,[1,2,3,4,5,6]
輸出
[5,6,1,2,3,4]
筆記:一開始么看懂6棋恼,2的是什么琉苇,輸入有三個參數(shù) n m a n=6 m =2
3.思路
/**
* 旋轉(zhuǎn)數(shù)組
* @param n int整型 數(shù)組長度
* @param m int整型 右移距離
* @param a int整型一維數(shù)組 給定數(shù)組
* @return int整型一維數(shù)組
*/
function solve( n , m , a ) {
// write code here
m = m % n; //為了查看m是否大于n 不大于的時候不變 大于的話就移動余數(shù)
let ret = [],i
for (i = 0; i < m; i++)
ret[i] = a[n - m + i]
for (i = m; i < n;i++)
ret[i] = a[i - m]
return ret
}
module.exports = {
solve : solve
};