码迷,mamicode.com
首页 > 编程语言 > 详细

the sum (python)

时间:2018-09-08 22:38:38      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:example   number   .com   add   接收   exactly   alt   img   键值   

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example

Given nums = [2, 7, 11, 15], target = 9,

 

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1].

 

首先,这道题是关于确定值查询的问题。最容易想到的是用一个空列表来接收返回的两个数字的索引。通过双重循环比较数组中是否有两个值之和等于目标值,且i!=j。有的话就把i,j的值存到空列表中。很显然这样做有明显的缺陷,时间复杂度为0(n^2)。

技术分享图片

为了提高时间复杂度,这里引进散列表查找(哈希)。什么是哈希算法?就是在记录存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置fkey)。简而言之,就是数据和存储位置构成一个映射关系。碰巧,python中的字典就是采用哈希算法编写的。每个关键字对应于一个键值。首先先建立一个空字典,然后逐个检查目标值-num[i] 是在列表中,不在的话,就把num[i]:i  键值对添加到字典中。直到有在列表中的就将两个下标存到列表中,最后返回列表即可。利用哈希算法。时间复杂度是on)。比上一种方法时间复杂度低。

技术分享图片

刷的第一道题,要加油啊!

the sum (python)

标签:example   number   .com   add   接收   exactly   alt   img   键值   

原文地址:https://www.cnblogs.com/shaer/p/9610359.html

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