Python中的K和-K

假设我们有一个称为nums的数字列表,我们必须找到最大的数字k,其中k和-k都以nums存在(它们可以是相同的数字)。如果没有这样的元素,则返回-1。

因此,如果输入类似于[-5、2、9,-6、5,-9],那么输出将为9。

为了解决这个问题,我们将遵循以下步骤-

  • L1:= 0和以num为单位的正元素的列表

  • L2:=包含0和以num为单位的否定元素的列表

  • 以相反的顺序对L1进行排序

  • 排序列表L2

  • 对于L1中的每个i

    • 如果i + j等于0,则

    • 否则,当i + j> 0时,则

    • 还给我

    • 从当前循环中出来

    • 对于L2中的每个j

    • 返回-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