Computer >> Máy Tính >  >> Lập trình >> Python

Mảng không giảm trong Python


Giả sử chúng ta có một mảng với n số nguyên, nhiệm vụ của chúng ta là kiểm tra xem nó có thể trở thành không giảm hay không bằng cách sửa đổi nhiều nhất một phần tử. Chúng ta có thể xác định một mảng là không giảm nếu nó thỏa mãn quy tắc này:array [i] <=array [i + 1] với mọi i (1 <=i

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Nếu arr có 2 phần tử trở xuống, thì trả về ture

  • ans:=Sai

  • cho tôi trong phạm vi 0 đến số phần tử trong arr - 2

    • nếu arr [i]> arr [i + 1]

      • nếu ans khác 0 thì trả về false, ngược lại ans:=True

      • nếu tôi> 0

        • nếu arr [i - 1]> arr [i + 1], thì arr [i + 1]:=arr [i]

  • trả về true

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

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]))

Đầu vào

[4,2,3,5]

Đầu ra

True