Python中的非递减数组
假设我们有一个包含n个整数的数组,我们的任务是通过最多修改一个元素来检查它是否可以不减少。如果满足以下规则,我们可以定义一个数组为非递减数组:array[i]<=array[i+1]foreachi(1<=i<n)。因此,如果数组为[4,2,3],那么答案将是正确的。如果将4设为1,我们可以简单地将其转换为非递减数组,则该数组将为[1,2,3]
为了解决这个问题,我们将遵循以下步骤-
如果arr具有2个或更少的元素,则返回ture
回答:=False
对于范围从0到arr的元素数的i–2
如果ans非零,则返回false,否则返回ans:=True
如果我>0
如果arr[i-1]>arr[i+1],则arr[i+1]:=arr[i]
如果arr[i]>arr[i+1]
返回真
范例(Python)
让我们看下面的实现以更好地理解-
class Solution(object): def checkPossibility(self, nums): if len(nums) <=2: return True ans = False for i in range(len(nums)-1): if nums[i] > nums[i+1]: if ans: return False else: ans = True if i>0: if nums[i-1] > nums[i+1]: nums[i+1] = nums[i] return True ob1 = Solution()print(ob1.checkPossibility([4,2,3,5]))
输入值
[4,2,3,5]
输出结果
True