leetcode python 001

左心房为你撑大大i 提交于 2020-03-07 07:18:51

给定一个数组,和一个数字target,要求返回和为target的两个数组成员的下标。

import numpy as np
import time

#### 构造题目 , x数组大小
x=100000
l1=np.random.rand(x)
l2=[round(l*x,5) for l in l1]
w1=np.random.randint(0,x)
w2=np.random.randint(0,x)
while w1==w2:
    w2=np.random.randint(0,x)
print('答案%s,%s'%(w1,w2))
target=l2[w1]+l2[w2]
print('target %s'%target)

####  开始计算
t=time.time()
d={}
for i in range(x):    
    if l2[i] in d.keys():
        print(d[l2[i]],i)
        print(l2[d[l2[i]]],l2[i])
        break
    d[target-l2[i]]=i
t=time.time()-t
print('%s 元素用时 %s s'%(x,t))

----蚂蚁不在线

import numpy as np
import time

#### 构造题目 , x数组大小
x=100000
l1=np.random.rand(x)
l2=[round(l*x,5) for l in l1]
w1=np.random.randint(0,x)
w2=np.random.randint(0,x)
while w1==w2:
    w2=np.random.randint(0,x)
print('答案%s,%s'%(w1,w2))
target=l2[w1]+l2[w2]
print('target %s'%target)

####  开始计算
t=time.time()
d={}
for i in range(x):    
    if l2[i] in d.keys():
        print(d[l2[i]],i)
        print(l2[d[l2[i]]],l2[i])
        break
    d[target-l2[i]]=i
t=time.time()-t
print('%s 元素用时 %s s'%(x,t))

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!