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
廣告