概述
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].
这种蛮力方法是:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if(nums[i] + nums[j] == target):
return [i, j]
另外一种比较好的做法是:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
arr = {};//使用字典存储遍历过的num和对应下标{num:index}
length = len(nums);//计算输入的列表长度
for i in range(length):
if (target - nums[i]) in arr://如果target-当前num的差在arr中,则表示已经找到答案,返回结果即可
return [arr[target - nums[i]], i];
arr[nums[i]] = i;//否则,将该num及其下标存入arr中
最后
以上就是正直煎饼为你收集整理的LeetCode算法(Python)--1、Two Sum的全部内容,希望文章能够帮你解决LeetCode算法(Python)--1、Two Sum所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复