算法第一关

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循环之后用目标数字减去循环数字 看得到的结果在不在列表中

上一篇下一篇

猜你喜欢

热点阅读