检查反转子数组是否使数组在 Python 中排序
假设我们有一个名为nums的数组,其中包含唯一元素。我们必须检查数组在反转它的一个子数组后是否会被排序。如果数组已经排序,则也返回true。
因此,如果输入类似于nums=[4,6,27,25,15,9,37,42],那么输出将为True,因为如果我们反转[9,15,25,27],则数组将被排序。
为了解决这个问题,我们将按照以下步骤操作-
n:=数字的大小
如果数组只有一个元素,则返回True
我:=1
对于1到n-1范围内的i,请执行
如果i与n相同,则返回true,否则从循环中出来
如果nums[i-1]
j:=i
当j
如果i>1且nums[j]
j:=j+1
如果j与n相同,则返回True
k:=j
如果nums[k]
当k>1且k
如果nums[k]
k:=k+1
返回真
让我们看看以下实现以获得更好的理解-
示例代码
def solve(nums):
n = len(nums)
if n == 1:
return True
i = 1
for i in range(1, n):
if nums[i - 1] < nums[i] :
if i == n:
return True
else:
break
j = i
while j < n and nums[j] < nums[j - 1]:
if i > 1 and nums[j] < nums[i - 2]:
return False
j += 1
if j == n:
return True
k = j
if nums[k] < nums[i - 1]:
return False
while k > 1 and k < n:
if nums[k] < nums[k - 1]:
return False
k += 1
return True
nums = [4,6,27,25,15,9,37,42]
print(solve(nums))输入
[4,6,27,25,15,9,37,42]输出结果
True
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短