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时,
- 退出当前循环
- 如果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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP