假设我们有一个称为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