博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两数之和
阅读量:5359 次
发布时间:2019-06-15

本文共 623 字,大约阅读时间需要 2 分钟。

题意非常简单,

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。

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

一眼看到的解决方法一定是两层for 循环,这题考的应该是如何优化,但出乎意料的是两层for循环也通过了,虽然排名非常靠后.

 

然后一种优化思路:

利用字典哈希的快速查找,优化第二层for循环的查找速度。

但题中还有一点需要注意的,那就是你不能重复利用这个数组中同样的元素,那就需要加一个判断。

class Solution:    def twoSum(self, nums, target):        # 产生散列表        hash_ = dict(zip(nums, range(len(nums))))        # 反向寻找        for i in range(len(nums)):            other=target-nums[i]            if hash_.get(other):                if i==hash_[other]:                    continue                return [i,hash_[other]]

 

转载于:https://www.cnblogs.com/zenan/p/10072194.html

你可能感兴趣的文章
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
linux的子进程调用exec( )系列函数
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
Code Snippet
查看>>
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>