python3:两数之和

python3:两数之和

题目:两数之和

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1]

思路:

看似很简单,两个for循环暴力穷举。但是有句话说的好:一入循环深似海,从此offer是路人

for循环做出来基本上都会超时。

所以换一种方法,让定值减去数组中的元素,然后判断数值中是否存在。

使用字典模拟哈希查找,注意为了避免出现重复会被删除的操作,以及方便找出索引值,
这里使用Python enumerate() 函数
enumerate()原理:
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

Python 2.3. 以上版本可用,2.6 添加 start 参数。

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

所以该题可以这样做:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dics = {
   }
        for id,num in enumerate(nums):
            if target-num in dics:
                return [dics[target-num],id]
            dics[num] = id
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100105.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10键盘锁住了怎么解决

    win10键盘锁住了怎么解决有win10系统用户在使用的时候,发现键盘被锁住了,导致无法使用,经过分析可能是不小心按到了键盘上的锁住键锁定键盘的快捷键笔记本电脑:Fn+Numlock键第一种方法:1、外接键盘,是否按过“Numlock”键,如果按过“Numlock”键,再次使用外接键盘按一次“Numlock”键,就会恢复正常了。(仅仅锁定或者解锁数字键盘)2、可以在电脑键盘中找到“Fn”键,这个键又被称为“第二功能键”,因为当你按下这个键,再去按另一个带有两种功能的键时,那个键就会出现第二种功能。3、再找到“F.

    2022年5月29日
    62
  • move_uploaded_file

    move_uploaded_file

    2021年9月19日
    42
  • deeplink

    deeplinkhttp://www.cnblogs.com/shadajin/p/5724117.htmlDeeplink,简单讲,就是你在手机上点击一个链接之后,可以直接链接到app内部的某个页面,而不是app正常打开时显示的首页。不似web,一个链接就可以直接打开web的内页,app的内页打开,必须用到deeplink技术。什么是deeplink技术?如何实现的?郭宇洋的这篇文章有非常轻松易懂的说…

    2022年6月14日
    47
  • linux中实现线程同步的6种方法

    linux中实现线程同步的6种方法linux线程同步的方法下面是一个线程不安全的例子:#include<stdio.h>#include<pthread.h>intticket_num=10000000;void*sell_ticket(void*arg){while(ticket_num>0){ ticket_num–;}}intmain(){pthread_tt1,t2,t3;pthread_create(&t1,NU

    2022年7月15日
    21
  • B – I Hate It

    B – I Hate It

    2021年9月27日
    56
  • spider crawled. red bottom shoes「建议收藏」

    Hewasamostnotoriousblasphemer,andhispoweroflanguagewassoextraordinarywhicheverybodyutilizedtod…

    2022年4月10日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号