在博客园上开启LeeCode刷题记录,希望可以成为一只厉害的程序媛~


  •  类别:Python
  •  题目(1)
  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
  • 示例:给定 nums = [2, 7, 11, 15]      target = 9    因为 nums[0] + nums[1] = 2 + 7 = 9      所以返回 [0, 1]
  •  我的解答
 1 class Solution(object):
 2     def twoSum(self, nums, target):
 3         """
 4         :type nums: List[int]
 5         :type target: int
 6         :rtype: List[int]
 7         """
 8         n = len(nums)
 9         indexs = []
10         for i in range(0,n):                     #i是下标
11             j = target - nums[i]                   #j是值
12             if j in nums and i != nums.index(j):
13                 x = nums.index(j)
14                 indexs.append(i)
15                 indexs.append(x)
16             indexs = list(set(indexs))
17         return indexs
  • 运行情况:执行用时 :1304 ms,内存消耗 :12.4 MB
  • 自评:这段代码提交了多次才成功,出错原因:
  1. 一方面是粗心,导致的循环范围定错;
  2. 一方面是考虑问题不够全面,导致程序只对参考范例运行成功,并没有考虑到列表和目标值的特殊情况

 2019-12-31

13:33:56


题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum

12-23 01:55