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

โปรแกรมตรวจสอบเราสามารถจัดเรียงอาร์เรย์ใหม่เพื่อสร้างความแตกต่างระหว่างองค์ประกอบแต่ละคู่ในPython


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

ดังนั้น หากอินพุตเป็น nums =[8, 2, 6, 4] ผลลัพธ์จะเป็น True เพราะหากเราจัดเรียง nums ใหม่เช่น [2, 4, 6, 8] ดังนั้นความแตกต่างระหว่างทุก ๆ สองคู่ของ ตัวเลขต่อเนื่องกันคือ 2.

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

  • N :=ขนาดของ nums

  • ถ้า N <=2 แล้ว

    • คืนค่า True

  • เรียงเลขรายการ

  • targetDiff :=nums[1] - nums[0]

  • สำหรับฉันอยู่ในช่วง 2 ถึง N - 1 ทำ

    • ถ้า nums[i] - nums[i - 1] ไม่เหมือนกับ targetDiff แล้ว

      • คืนค่าเท็จ

  • คืนค่า True

ตัวอย่าง

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

def solve(nums):
   N = len(nums)
   if N <= 2:
      return True
   nums.sort()
   targetDiff = nums[1] - nums[0]
   for i in range(2, N):
      if nums[i] - nums[i - 1] != targetDiff:
         return False
   return True

nums = [8, 2, 6, 4]
print(solve(nums))

อินพุต

[8, 2, 6, 4]

ผลลัพธ์

True