C++程序 打印给定数组的所有可能旋转
给定一个大小为N的整数数组 arr[] ,任务是打印数组的所有可能的旋转。
示例:
输入: arr[] = {1, 2, 3, 4}
输出: {1, 2, 3, 4}, {4, 1, 2, 3}, {3, 4, 1, 2}, {2, 3, 4, 1}
解释:
初始 arr[] = {1, 2, 3, 4}
第一次旋转后 arr[] = {4, 1, 2, 3}
第二次旋转后 arr[] = {3, 4, 1, 2}
第三次旋转后 arr[] = {2, 3, 4, 1}
第四次旋转后, arr[] 返回其原始形式
输入: arr[] = [1]
输出: [1]
方法:
按照下面的步骤解决问题:
- 通过逐步对数组进行左旋转,生成数组的所有可能旋转。
- 打印数组的所有可能旋转,直到遇到相同的数组旋转。
以下是上述方法的实现:
输出:
时间复杂度: O(N2)
辅助空间: O(1)