Python中的K和-K


假設我們有一個名為nums的數字列表,我們需要找到最大的數字k,其中k和-k都存在於nums中(它們可以是同一個數字)。如果沒有這樣的元素,則返回-1。

因此,如果輸入類似於[-5, 2, 9, -6, 5, -9],則輸出將為9。

為了解決這個問題,我們將遵循以下步驟:

  • L1:nums中0和正數的列表
  • L2:nums中0和負數的列表
  • 按降序排列L1
  • 排列列表L2
  • 對於L1中的每個i:
    • 對於L2中的每個j:
      • 如果i+j等於0,則
        • 返回i
      • 否則,當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

更新於:2020年9月23日

698 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告