算法第一关
2019-02-26 本文已影响0人
人字拖拖不下来
1.两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]Leetcode题目链接:https://leetcode-cn.com/problems/two-sum/
import random,os
os.chdir(r'D:\0working\python_picture\41_算法')
target_number = random.randint(0,999)
list_1 = list(range(1,1000))
try:
list(random.shuffle(list_1))
except:
pass
def search_double_number(list_1,target_number):
print('开始在列表中查找相加等于',target_number,'的两个数字')
list_1_copy = list_1[::]
# print(len(list_1_copy))
for number_1 in list_1:
number_1_index = list_1_copy.index(number_1)
del list_1[list_1.index(number_1)]
# print(len(list_1))
for number_2 in list_1:
if number_1 + number_2 == target_number:
print(number_1,number_2)
print([number_1_index,list_1_copy.index(number_2)])
return([number_1_index,list_1_copy.index(number_2)])
return('没有相加等于',target_number,'的两个数字')
search_double_number(list_1,target_number)
自己的这个想法太笨重了
可以for循环之后用目标数字减去循环数字 看得到的结果在不在列表中