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

K และ -K ใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องหาจำนวนที่มากที่สุด k โดยที่ kand -k ทั้งสองมีอยู่ใน nums (อาจเป็นตัวเลขเดียวกันก็ได้) หากไม่มีองค์ประกอบดังกล่าว ให้คืนค่า -1

ดังนั้น หากอินพุตเป็น [-5, 2, 9, -6, 5, -9] เอาต์พุตจะเป็น 9

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

  • L1:=รายการ 0 และองค์ประกอบบวกใน nums
  • L2:=รายการ 0 และองค์ประกอบเชิงลบใน nums
  • จัดเรียง L1 ในลำดับที่กลับกัน
  • เรียงลำดับรายการ L2
  • สำหรับ i แต่ละตัวใน L1 ให้ทำ
    • สำหรับแต่ละ j ใน L2 ให้ทำ
      • ถ้า i+j เหมือนกับ 0 แล้ว
        • คืนผม
      • มิฉะนั้น เมื่อ i+j> 0 แล้ว
        • ออกมาจากลูปปัจจุบัน
  • คืน -1

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      L1=[i for i in nums if i>=0]
      L2=[i for i in nums if i<=0]
      L1.sort(reverse=True)
      L2.sort()
      for i in L1:
         for j in L2:
            if i+j==0:
               return i
            elif i+j>0:
               break
      return -1
ob = Solution()
nums = [-5, 2, 9, -6, 5, -9]
print(ob.solve(nums))

อินพุต

[-5, 2, 9, -6, 5, -9]

ผลลัพธ์

9