今天刷一道题,计算一串数字中其中两个数字相加等于目标值的题目,且取其中最早的两个数字(最后一个数字的位置靠前)。

如[1,25,32,4,3,6,9,5]  targer:9  输出 [3,6]   虽然[4,5]也满足

我的想法是,每次第i个数字  查找 target - nums[i] 是否在nums[i]之前出现。

开始用  if  target - nums[i]  in  nums[:i],但是切片相当于复制额外增加复杂度O(N),

后来改为建立一个 newlist  每次比较完一个数字不成功增加newlist.append()  , if  target - num[i]  in  newlist

但还是很慢,最后把newlsit = [] 改为  set,set类似字典,用了hash算法实现 有address = f(key)  查找复杂度为O(1)

代码如下:

 def sum_pairs(ints, s):
mymap = set()
for value in ints:
if s - value in mymap:
return [s-value, value]
mymap.add(value)
return None

dict与list的in 操作的速度的更多相关文章

  1. python 字典 dict 该注意的一些操作

    在用python处理dict 的时候,有几个该注意的地方,这里跟大家提一下: 1)操作dict 时,尽量少产生新的列表对象.比如: 遍历dict的时候,如果用 dic = {"a" ...

  2. 【Unity笔记】物体的Transform操作:速度、旋转、平移

    例如,通过按键/摇杆来操作飞机在三维空间的飞行状态.包括速度(大小,方向).位移. public class ExampleClass : MonoBehaviour { public float s ...

  3. Selenium + Python操作IE 速度很慢的解决办法

    IEDriverServer 64位换成32位 https://docs.seleniumhq.org/download/

  4. 【Redis源代码剖析】 - Redis内置数据结构之字典dict

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51018337 今天我们来讲讲Redis中的哈希表. 哈希表在C++中相应的是ma ...

  5. Python:数据结构(list, tuple, Dict & Set)

    list: Python中内置的有序数据结构,即数组.由于Python是动态语言,因此数组元素的类型没有限定. classmates = [“Michael”, “David”,”Bob”,”Trac ...

  6. 05.Django基础五之django模型层(一)单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  7. Django-模型层(单表操作)

    目录 1.ORM简介 2.单表操作 2.1创建表 2.2添加表纪录 2.3查询表纪录 2.4删除表纪录 2.5修改表纪录 1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了 ...

  8. Django之Model操作

    Django之Model操作 本节内容 字段 字段参数 元信息 多表关系及参数 ORM操作 1. 字段 字段列表 AutoField(Field) - int自增列,必须填入参数 primary_ke ...

  9. django--models操作

    1.models的功能 操作数据库 提交验证 在django的admin中,使用的是modelForms所以在验证的时候,尽管在models后有error_ message参数也不会根据此来提示.具体 ...

随机推荐

  1. 设置这些之后,Google突然可以打开了

    打开的是:https://www.google.com.hk

  2. plist文件、NSUserDefault 对文件进行存储的类、json格式解析

    ========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...

  3. SQL Server 修改表结构后无法保存的老问题

    在修改表结构后无法保存,这是每次重装SQL Server后都会遇到的问题,好记性不如烂笔头,在这里记一下吧. 保存修改了的表结构时会提示“不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法 ...

  4. ssl客户端与服务端通信的demo

    服务端程序流程 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <str ...

  5. 项目实现不同环境不同配置文件-maven profile

    最近接触的项目都是在很多地方都落地的项目,需要支持不同的环境使用不同的配置文件.一直以来都以为是人工的去写不同的配置文件,手动的去修改运用的配置文件.感觉自己还是太low呀.maven的使用的还停留在 ...

  6. [No000094]SVN学习笔记4-版本库概念与部分日常操作

    基本概念 版本库 Subversion 使用集中的数据库,它包含了所有的版本控制文件及其完整历史.这个数据库就是版本库.版本库通常位于运行 Subversion 服务器的文件服务器上,向 Subver ...

  7. [bzoj2588][count on a tree] (主席树+lca)

    Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始 ...

  8. win7下安装配置nodejs、使用npm安装express

    1.下载node http://nodejs.cn/download/ 这里下载自己需要的 我的环境是win764,下载地址是:https://nodejs.org/dist/v6.2.0/win-x ...

  9. docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量.更牛叉的新一代虚拟机技术.下面是安装步骤: 一.mac/windows平台的安装 docker是在linux内核基础上发展而来的,无法直接运行在mac/w ...

  10. [LeetCode] Frog Jump 青蛙过河

    A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...