在Python中检查数组是否排序且旋转
假设我们有一个名为nums的数组,我们必须检查数组最初是否按非降序排序,然后将其旋转了一些位置(可能为零)或未旋转。 数组中也可能存在重复项。
因此,如果输入为nums = [12,15,2,5,6,9],则输出为True,因为它向右旋转了两个位置。
为了解决这个问题,我们将遵循以下步骤:
- j:=0
-
while j < nums大小 – 1 且 nums [j] <= nums [j + 1],执行
- j := j + 1
- res:=(从索引j + 1到nums结尾的nums子数组)连接(索引0到nums j的子数组)
-
for i in range 0 to size of res – 1, do
- if res [i] > res [i + 1],则
- 返回False
- if res [i] > res [i + 1],则
- 返回True
示例(Python)
让我们看一下以下实现以更好地理解: