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

โปรแกรมตรวจสอบจำนวน global และ local inversions ว่าเหมือนกันหรือไม่ใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums นี่คือการผกผันทั่วโลกเมื่อมีดัชนี i nums[j] และการผกผันภายในคือเมื่อมีดัชนี i และ i + 1 เช่นนั้น nums[i]> nums[i + 1] เราต้องตรวจสอบว่าจำนวนการผกผันทั่วโลกเท่ากับจำนวนการผกผันในเครื่องหรือไม่

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3, 2, 4] ผลลัพธ์จะเป็น True เนื่องจากดัชนี 0 และ 1 เป็นการผกผันทั้งแบบโกลบอลและแบบโลคัล

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

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

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      l = len(nums)
      for i in range(l - 2):
         for j in range(i + 2, l):
            if nums[i] > nums[j]:
               return False
      return True
ob = Solution()
nums = [3, 2, 4]
print(ob.solve(nums))

อินพุต

[3, 2, 4]

ผลลัพธ์

True