n개의 정수가 있는 배열이 있다고 가정하고 최대 하나의 요소를 수정하여 배열이 감소하지 않는지 여부를 확인합니다. 모든 i에 대해 array[i] <=array[i + 1](1 <=i
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
arr에 2개 이하의 요소가 있으면 ture를 반환합니다.
ans :=거짓
범위 0의 i에서 arr의 요소 수 – 2
만약 arr[i]> arr[i + 1]
ans가 0이 아니면 false를 반환하고, 그렇지 않으면 ans :=True
내가> 0인 경우
arr[i - 1]> arr[i + 1]이면 arr[i + 1] :=arr[i]
true를 반환
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
예제(파이썬)
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