LeetCode攻关笔记——1.Two_Sum

来源:互联网 发布:软件系统投标书 编辑:程序博客网 时间:2024/05/17 16:14

1.Two_Sum

传送门

https://leetcode.com/problems/two-sum/

题意

给定一个整数数组nums,和一个目标数字target
使得nums中的两个数字相加等于 target
以数组形式返回两个数字的下标
可以假设每个输入都只有一个结果

思路

比较笨。。脑袋里第一想法就是两层for循环找到两个数字的下标

AC代码

class Solution(object):    def twoSum(self, nums, target):        for i in xrange(0, len(nums) - 1):            for j in xrange(i + 1, len(nums)):                numSum = nums[i] + nums[j]                if numSum == target:                    return [i, j]if __name__ == '__main__':    nums = [2, 7, 11, 15]    target = 9    getIndices = Solution()    print getIndices.twoSum(nums, target)

遇到问题

开始忘了考虑两层for会有相同位置元素相加的情况

for i in xrange(0, len(nums)):    for j in xrange(0, len(nums)):

导致的错误结果是:
当nums = [3, 2, 4],target = 6时,返回值[0, 0]
所以需要控制一下下标,确保两个数字的组合不重复

for i in xrange(0, len(nums) - 1):   for j in xrange(i + 1, len(nums)):
0 0