简答题

设计一个时间复杂度为O(n)的算法,实现将数组A[n]中所有元素循环右移k个位置。

正确答案

分析算法,第一次调用Reverse函数的时间复杂度为O(k),第二次调用Reverse函数的时间复杂度为O(n-k),第三次调用Reverse函数的时间复杂度为O(n),所以,总的时间复杂度为O(n)。

答案解析