两数之和算法讨论

简介: 两数之和算法讨论

简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。

一、说在前面

昨天和今天的讨论中我们(由于中秋佳节之际,这次群内只有我和两位学长讨论)优化算法的点主要是在:数据结构上,也就是,到底用什么数据结构存储数据,遍历最快?

我们常见的几种数据结构:列表、元组、字典、枚举,在上一篇推文[【边学边敲边记】LeetCode001:两数之和]中我们已经使用了列表、字典作为存储载体,结果是字典遍历要快很多,今天我将介绍另外两种数据存储结构的执行效果。

二、实现

  • 元组数据结构
class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        l = len(nums)
        tuple_nums = tuple(nums)
        for a in range(l):
            one_unm = tuple_nums[a]
            other_one = target - one_unm
            if other_one in tuple_nums:
                b = tuple_nums.index(other_one)
                if a!= b:
                    return [a,b]
nums = [3, 3, 1, 2]
target = 6
test_o = Solution()
result = test_o.twoSum(nums,target)
print(result)
  • 提交结果

image.png

提交结果

测试数据:29组

运行时间:888ms

击败人百分比:64.24%

  • 枚举数据结构
class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        nums_hash = {}
        for index,number in enumerate(nums):
            one_num = nums[index]
            other_num = target-one_num
            if other_num in nums_hash:
                return [nums_hash[other_num],index]
            nums_hash[number] = index
        return []
  • 提交结果

image.png

提交结果

测试数据:29组

运行时间:28ms

击败人百分比:98.70%

相关文章
|
6月前
|
机器学习/深度学习 算法 Java
数论中的十个基本概念
数论中的十个基本概念
|
5月前
|
存储
初阶编程题积累(3)——最接近的三数之和(题目描述、示例、题目思路、题解、解析)
初阶编程题积累(3)——最接近的三数之和(题目描述、示例、题目思路、题解、解析)
34 0
|
6月前
|
测试技术
【一刷《剑指Offer》】面试题 9:斐波那契数列(扩展:青蛙跳台阶、矩阵覆盖)
【一刷《剑指Offer》】面试题 9:斐波那契数列(扩展:青蛙跳台阶、矩阵覆盖)
|
算法 搜索推荐
【1到100求和学算法】1#开篇
【1到100求和学算法】1#开篇
68 0
|
算法 搜索推荐
1到100求和学算法之开篇
1到100求和学算法之开篇
98 0
数论整理之特殊数one:斐波那契数列
数论整理之特殊数one:斐波那契数列
|
存储 算法 搜索推荐
八大排序算法总结+例题练习(正在不断补充...)
八大排序算法总结+例题练习(正在不断补充...)
八大排序算法总结+例题练习(正在不断补充...)
|
算法 C++
算法基础系列第四章——数论之质数与约数(2)
算法基础系列第四章——数论之质数与约数(2)
121 0
算法基础系列第四章——数论之质数与约数(2)
|
机器学习/深度学习 算法 C++
算法基础系列第四章——数论之质数与约数(1)
算法基础系列第四章——数论之质数与约数(1)
186 0
算法基础系列第四章——数论之质数与约数(1)