array系列
问题描述:https://leetcode.com/problems/two-sum/description/
当然最容易想到的是n方的加法,再优化一点呢,可以先排序再二分最后找下标,这样是nlogn
O(n)的没想到 看到别人的解法才知道dictionary是哈希表,这样查找能降到O(1)
看来要系统地看python书了,菜鸟教程可能不太够用
代码:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
if len(nums)<=1:
return False
dicta={}
for i in range(len(nums)):
if nums[i] in dicta:
return dicta[nums[i]],i
else:
dicta[target-nums[i]]=i