สมมติว่าเรามีอาร์เรย์ที่มีจำนวนเต็ม 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