C++程序 旋转给定数字的K位数字
给定两个整数 N 和 K ,任务是将 N 的数字旋转K个位置。如果 K 是正整数,则左旋其数字。否则,右旋其数字。
示例:
输入: N = 12345,K = 2
输出: 34512
说明:
将 N(= 12345)左旋 K(= 2)改为 34512。
因此,所需的输出是 34512。
输入: N = 12345,K = -3
输出: 34512
说明:
将 N(= 12345)右旋 K(= -3) 修改为 34512。
因此,所需的输出是 34512。
方法: 按照以下步骤解决问题:
- 初始化一个变量,比如说 X ,来存储 N 中数字的个数。
- 更新 K = (K + X) % X ,将其缩小到左旋的情况下。
- 移除 N 的前 K 个数字,并将所有移除的数字附加到 N 的数字右侧。
- 最后,打印 N 的值。
以下是上述方法的实现:
输出:
时间复杂度: O(log N)
辅助空间: O(1)