码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 1.两数之和

时间:2018-06-14 01:11:37      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:整数   TE   重复   for   style   ret   targe   两数之和   enumerate   

  给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

  你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

  示例:

给定 nums = [2, 7, 11, 15], target = 9

  因为 nums[0] + nums[1] = 2 + 7 = 9
  所以返回 [0, 1]

  注:要考虑i,j不相等,即两元素的下标不能相等

  • 一开始的代码

  一开始想的是找到一个在nums中和item相加等于target的数,再返回其下标,结果运行时间太长了

  

 for i,item in enumerate(nums):
        for j in nums:
            if nums.index(j)!=i:
                x=j+item
                if x==target:
                   return i,nums.index(j)
  • 改进代码

  后来发现,只要在nums中找到target-item即可。。。,减少了遍历的时间

  

                for i, item in enumerate(nums):
                    if target - item in nums and nums.index(target - item) != i:
                        return i, nums.index(target - item)

 

Leetcode 1.两数之和

标签:整数   TE   重复   for   style   ret   targe   两数之和   enumerate   

原文地址:https://www.cnblogs.com/Aprilnn/p/9180688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!