Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าอาร์เรย์แสดงถึง Inorder ของ Binary Search tree หรือไม่ใน Python


สมมติว่าเรามีอาร์เรย์ของตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่าอาร์เรย์ถือองค์ประกอบของแผนผังการค้นหาแบบไบนารีในลำดับการข้ามผ่านภายในหรือไม่

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[5, 8, 15, 18, 20, 26, 39] เอาต์พุตจะเป็น True เนื่องจากเป็นการข้ามผ่านของ

ตรวจสอบว่าอาร์เรย์แสดงถึง Inorder ของ Binary Search tree หรือไม่ใน Python

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ขนาด :=ขนาดของตัวเลข
  • ถ้าขนาด 0 หรือ 1 แล้ว
    • คืนค่า True
  • สำหรับฉันในช่วง 1 ถึงขนาด - 1 ทำ
    • ถ้า nums[i - 1]> nums[i] แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

def solve(nums):
   size = len(nums)
   if size == 0 or size == 1:
      return True
   for i in range(1, size):
      if nums[i - 1] > nums[i]:
         return False
   return True
nums = [5, 8, 15, 18, 20, 26, 39] 
print(solve(nums))

อินพุต

[5, 8, 15, 18, 20, 26, 39]

ผลลัพธ์

True