关于LeeCode的题目经验总结title1

给定一个整数数组 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:贴主所有的帖子都是用于自学笔记以及错误总结,不具备教学意义,如有错误欢迎各位指出探讨交流。

发布了3 篇原创文章 · 获赞 0 · 访问量 46

猜你喜欢

转载自blog.csdn.net/qq_44394692/article/details/104431912