【发布时间】:2020-05-22 01:34:30
【问题描述】:
您好,我不明白 k-loop 是如何恒定时间的。如果数组是 [4,4,4,4,4,4] 并且目标是 12,那么 number_table[4] = [0,1,2,3,4,5] 然后 k 循环将迭代五次不?问自己 i、j 和 k 是否都不同...这个视频似乎另有说法?video
def three_sum(nums, target):
number_table = {}
for i in range(len(nums)):
if nums[i] in number_table.keys():
number_table[nums[i]].append(i)
else:
number_table[nums[i]] = []
for i in range(len(nums) - 1):
for j in range(i + 1, len(nums)):
partial_target = target - nums[i] - nums[j]
for k in number_table[partial_target]:
if len(set((i,j,k))) == 3:
return (nums[i], nums[j], nums[k])
return None
numbers = [4,4,4,4,4,4]
target = 12
three_sum(numbers, target)
print(three_sum(numbers,target))
【问题讨论】:
-
我可以转录代码 :D
-
错字在哪里?我会尽量让人们更容易编译和编写我一直在寻找运行时分析,但我会尽量让每个人都更容易回答
标签: python algorithm sorting hashmap hashtable