สมมติว่าเรามีอาร์เรย์ที่มีจำนวนเต็ม n ตัว หน้าที่ของเราคือตรวจสอบว่าอาร์เรย์นั้นไม่ลดลงโดยแก้ไขอย่างน้อยหนึ่งองค์ประกอบ เราสามารถกำหนดว่าอาร์เรย์ไม่ลดลงหากสอดคล้องกับกฎนี้:array[i] <=array[i + 1] สำหรับทุก ๆ i (1 <=i
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
หาก arr มีองค์ประกอบ 2 หรือน้อยกว่า ให้คืนค่า ture
ตอบ :=เท็จ
สำหรับฉันในช่วง 0 ถึงจำนวนองค์ประกอบใน arr – 2
ถ้า arr[i]> arr[i + 1]
ถ้า ans ไม่ใช่ 0 ให้คืนค่าเท็จ มิฉะนั้น ans :=True
ถ้าฉัน> 0
ถ้า arr[i - 1]> arr[i + 1] แล้ว arr[i + 1] :=arr[i]
คืนความจริง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง (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