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