【算法训练】LeetCode#1 两数之和

一、描述

难度:简单

问题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

二、问题

起初想到的是将每一次相加成功的下标添加至useList中,再判断是进行对比,但是仅通过28组数据,原因是没想到最后数据有那么多,运行超时。

class Solution:
    def twoSum(self, nums, target):
        useList = []
        for i in range(len(nums)):
            for j in range(len(nums)):
                if i != j and nums[i] + nums[j] == target and i not in useList and j not in useList:
                    useList.append(i)
                    useList.append(j)
                    return [i, j]

三、解题(2020.09.20)

后来想到了只要j永远大于i就可以不进行是否相等的判断,也就不需要进行n方倍的迭代,大大减少了运行时常

class Solution:
    def twoSum(self, nums, target):
        for i in range(0, len(nums)):
            for j in range(i+1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
posted @ 2022-01-18 17:13  小拳头呀  阅读(5)  评论(0编辑  收藏  举报