第一次接触算法


前言

两数之和的求解方法


一、题目

给定一个整数数组 nums 和一个整数目标target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。

二、解题方法

1.暴力求解

代码如下:

def two_sum(nums: list, target: int):
    """
    :param nums: 数组
    :param target: 两数之和
    :return: 暴力求解,遍历列表中的所有元素,依次想加判断对应的和是否等于target
    """
    n = len(nums)
    for i in range(n):
        for j in range(i + 1, n):
            if nums[i] + nums[j] == target:
                return [i, j]

2.优化求解

代码如下:

def two_sum_1(nums: list, target: int):
    """

    :param nums:
    :param target:
    :return: 通过内置函数enumerate将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
    将列出的数据存入字典中,将key作为值,value作为键传入字典hashtable中,
    """
    hashtable: dict = dict()
    for key, value in enumerate(nums):
        if target - value in hashtable:
            return [hashtable[target - value], key]
        else:
            hashtable[nums[key]] = key

总结

记录接触算法的开始

猜你喜欢

转载自blog.csdn.net/qq_45868731/article/details/121577369