Computer >> Máy Tính >  >> Lập trình >> Python

K và -K trong Python

Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải tìm số k lớn nhất mà k và -k đều tồn tại trong nums (chúng có thể là cùng một số). Nếu không có phần tử như vậy, hãy trả về -1.

Vì vậy, nếu đầu vào là [-5, 2, 9, -6, 5, -9], thì đầu ra sẽ là 9.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • L1:=danh sách 0 và các phần tử dương tính bằng nums
  • L2:=danh sách 0 và các phần tử âm trong nums
  • sắp xếp L1 theo thứ tự ngược lại
  • sắp xếp danh sách L2
  • đối với mỗi tôi trong L1, hãy thực hiện
    • đối với mỗi j trong L2, thực hiện
      • nếu i + j giống 0, thì
        • trả lại tôi
      • ngược lại khi i + j> 0, thì
        • ra khỏi vòng lặp hiện tại
  • trả về -1

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

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

Đầu ra

9