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