在Python中检查数组是否已排序和旋转的程序

假设我们有一个名为 nums 的数组,我们必须检查该数组是否最初按非递减顺序排序,然后旋转了一些位置(可能为零)。数组中也可能存在重复项。

所以,如果输入像 nums = [12,15,2,5,6,9],那么输出就会是 True,因为它向右旋转了两个地方

示例(Python)

让我们看看以下实现以获得更好的理解 -

def solve(nums):

   j = 0

   while (j < len(nums) - 1 and nums[j] <= nums[j + 1]):

      j += 1

   res = nums[j + 1 : len(nums)] + nums[0:j + 1]

   for i in range(len(res) - 1):

      if res[i] > res[i + 1]:

         return False

   return True

nums = [12,15,2,5,6,9]

print(solve(nums))

输入

[12,15,2,5,6,9]
输出结果
True

以上是 在Python中检查数组是否已排序和旋转的程序 的全部内容, 来源链接: utcz.com/z/354414.html

回到顶部