博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.the sum (python)
阅读量:7179 次
发布时间:2019-06-29

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

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)。比上一种方法时间复杂度低。

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

转载于:https://www.cnblogs.com/shaer/p/9610359.html

你可能感兴趣的文章
python(1)汇率换算
查看>>
spring cloud微服务分布式云架构- Config 快速开始
查看>>
十一课堂|通过小游戏学习Ethereum DApps编程(1)
查看>>
【区块链+游戏实践】火币区块链产业专题报告-游戏产业的割裂与重构
查看>>
批量删除Maven下载失败的文件及文件夹
查看>>
前端学习是个无底洞,要给自己一个定位
查看>>
使用 ELK 来分析你的支付宝账单
查看>>
[Android] 列表控件(RecycleView,GridView)
查看>>
vue源码阅读,学习vue的rollup打包工具,write一个自己的工具函数库
查看>>
主流 SSM 框架Java 后台 springmvc mybatis 有代码生成器
查看>>
vue点击当前路由,如何实现刷新当前页
查看>>
iOS 常用布局方式之Constraint
查看>>
初识zookeeper和安装
查看>>
test
查看>>
【Camera专题】-Camera帧率、黄光环境下拍照闪红问题-【展讯平台】
查看>>
Android NDK 环境搭建 之 起始篇NDK HelloWorld
查看>>
this指向问题
查看>>
对 python 中变量值交换的一些思考
查看>>
iOS 数据优化之处理HTML字符串
查看>>
vue.js无缝滚动
查看>>