LeetCode简单_1_两数相加

587-王同学

发表文章数:79

首页 » LeetCode » 正文
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

两种方法,第一种时间超过范围了

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.py
@time: 2020/02/25
@desc:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

"""

#双循环直接找
def twoSum_1(list1, target):
    i = 0
    for i in range(0, len(list1)):
        for j in range(i + 1, len(list1)):
            if list1[i] + list1[j] == target:
                return i, j
 
#利用字典表
def twoSum_2(list2, target):
    dict = {}#新建字典表
    for i, item in enumerate(list2):#i对应key,item对应值
        j = target - item#定义item对应的缺少的另一半整数
        if dict.get(j):#如果想要找的整数在字典表中
            return i, dict.get(j)#返回两个数的索引
        dict[item] = i#最后再加入字典表可以防止两个数都是一样的问题
        #自定义字典表,不会覆盖key一样的值
if __name__ == '__main__':
    alist = [2, 5, 5, 9]
    print(twoSum_2(alist, 10))

 

拜师教育学员文章:作者:587-王同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《LeetCode简单_1_两数相加》 发布于2020-03-02

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录