给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
import random
target = random.randint(0, 10)
nums = []
for i in range(0, 10):
nums.append( random.randint(0, 6))
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(0, len(nums)-1):
for j in range(i, len(nums)-1):
if (i == j) :continue
else:
if (target == nums[i]+nums[j]):
return i, j
temp = Solution()
print(target)
print(nums)
print(temp.twoSum(nums, target))
//此处代码为自行编写的测试代码。
def twoSum(nums, target):
hashmap = {}## 标题
for ind, num in enumerate(nums):
hashmap[num] = ind
for i, num in enumerate(nums):
j = hashmap.get(target - num)
if j is not None and i!=j:
return [i,j]
//此处为解答提供的python
总结与反思:暴力算法不可取,其中还欠缺稳定性,应多尝试采用算法优化的方式来解决时间和空间的优化效率。
tips:贴主所有的帖子都是用于自学笔记以及错误总结,不具备教学意义,如有错误欢迎各位指出探讨交流。