题目内容:一个数组A中存有N>0个整数,将每个整数循环向右移M≥0个位置,即将A中的数据由( (A0A1⋯AN N−1A0A1⋯AN−M−1) (最后M个数循环移至最前面的M个位置)。 输入格式:第1行输入N(1≤N≤100)和M(≥0)中间用英文逗号,分隔第2行输入N个整数,中间用英文逗号,分隔。 输出格式:在一行中输出循环右移M位以后的整数序列,中间用英文逗号,分隔,序列结尾不能有多余空格。
时间: 2024-02-06 08:10:14 浏览: 54
给你一个包含n个整数的数组nums,并检查nums中是否有三个元素a、b和c使a+b+c=0?请查找总和为0且不重复的所有
以下是 Python3 代码实现:
```python
n, m = map(int, input().split(","))
a = list(map(int, input().split(",")))
m %= n # 如果 m 大于 n,则取模操作
# 先将整个数组反转
a.reverse()
# 将前 m 个数反转
a[:m] = reversed(a[:m])
# 将后 n-m 个数反转
a[m:] = reversed(a[m:])
# 最后再将整个数组反转回来
a.reverse()
# 输出结果
print(",".join(str(x) for x in a))
```
时间复杂度为 $O(n)$,空间复杂度为 $O(1)$。
阅读全文