算法
'''
https://blog.csdn.net/qq_40056626/article/details/81224187
https://www.cnblogs.com/wuxinyan/p/8615127.html
抓了a,b,c,d四名犯罪嫌疑人,其中有一人是小偷,审讯中:
•a说我不是小偷;
•b说c是小偷;
•c说小偷肯定是d;
•d说c胡说!
其中有三个人说的是实话,一个人说的是假话,请编程推断谁是小偷。
四个犯人编号1,2,3,4,
a说:thief != 1
b说:thief = 3
c说:thief = 4
d说:thief != 4
'''
thief = {1:'a',2:'b',3:'c',4:'d'}
for i in range(4):
i += 1
if 3 == ((i != 1) + (i == 3) + (i == 4) + (i != 4)):
## str = chr(96 + i) + "是小偷!"
print(thief[i]+ "是小偷!")
'''
随机产生10个10以内的整型数,存放到列表中,将列表中的最大值放在列表的最后
'''
l=[]
import random
for i in range(10):
m = random.randint(0,9)
l.append(m)
l.sort()
## l.sort(reverse=True) #将列表中的最大值放在列表的最前面
print(l)
'''
求区间[100, 200]内10个随机整型数的最大值
'''
import random
L=[]
for i in range(10):
m = random.randint(100,200)
L.append(m)
L=max(L)
print(L)
'''
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:'
'''
import time
start1=time.perf_counter()
def twosum(nums,target):
l = len(nums)
for i in range(l-1):
for j in range(i+1,l):
if nums[i]+nums[j]==target:
return [i,j]
## return nums[i],nums[j]
a=[2,7,11,15]
b=9
print(twosum(a,b))
end1=time.perf_counter()
print(end1-start1)
start2=time.perf_counter()
def twosum2(nums,target):
l=len(nums)
for i in range(l):
another = target-nums[i]
if another in nums:
j = nums.index(another)
if i==j:
continue
else:
return[i,j]
print(twosum2(a,b))
end2=time.perf_counter()
print(end2-start2)