منصة leetcode تستخدم إصدار أقدم من بايثون ولا يدعم سلسلة f والتي تم تقديمها في الإصدار 3.6.
أيضًا أنت تقوم بإرجاع 1 أو 0 بدلاً من مصفوفة تحتوي على مؤشرات العناصر التي مجموعها يساوي الهدف، كما هو مطلوب في LeetCode.
وللعلم استخدام nested loops أي حلقتين متداخلتين يؤدي إلى تعقيد زمني من الدرجة O(n^2)، حيث n هو عدد العناصر في المصفوفة، بمعنى وقت التنفيذ يزداد بشكل سريع جدًا مع زيادة حجم المصفوفة.
لذا اعتمد على ميثود format وتعديل الكود كالتالي:
class Solution:
def twoSum(self, nums, target):
num_map = {}
for i, num in enumerate(nums):
complement = target - num
if complement in num_map:
return [num_map[complement], i]
num_map[num] = i
return []
num = Solution()
result = num.twoSum([2, 7, 11, 15], 9)
print(result)
result = num.twoSum([3,2,4],6)
print(result)
result = num.twoSum([3,3],6)
print(result)