难度等级: easy
英文题目:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Python代码分析
代码如下:
class Solution:
def twoSum(self, nums, target):
if len(nums) < 2:
pass
tempDict = {nums[0]:0}
for i in range(1, len(nums)):
checkNum = target - nums[i]
if (checkNum in tempDict.keys()):
return [i,tempDict[checkNum]]
else:
tempDict[nums[i]] = i
因为本题的输出不考虑顺序,故可以先将输入list的第一个元素放入flag,之后依次用sum-input[i], 对i, 结果若在flag中,则直接返回;若不在flag中,则将第i个数放入flag,继续i+1;
复杂度分析
长度为n的输入,放入第一个数后for循环共有n次,每次复杂度不变。
故总的复杂度为O(n)。
以上就是对LeetCode第一题的分析和总结。