สมมติว่าเรามีรายการตัวเลขชื่อ nums เราต้องหาตัวเลข k ที่มากที่สุด โดยที่ k และ -k ทั้งคู่อยู่ใน nums (อาจเป็นตัวเลขเดียวกันได้) หากไม่มีองค์ประกอบดังกล่าว ให้คืนค่า -1
ตัวอย่าง
หากอินพุตคือ [-5, 2, 9, -6, 5, -9] ผลลัพธ์จะเป็น 9
ขั้นตอนการแก้ปัญหา
L1:= รายการขององค์ประกอบ 0 และบวกในnumsL2:= รายการขององค์ประกอบ 0 และลบในnums- เรียง
L1ในลำดับย้อนกลับ - เรียง
L2 - สำหรับแต่ละ
iในL1:- สำหรับแต่ละ
jในL2:- ถ้า
i + j == 0ให้คืนค่าi - อื่นๆ ถ้า
i + j > 0ให้ออกจากลูปปัจจุบัน
- ถ้า
- สำหรับแต่ละ
- คืนค่า -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