两数之和算法讨论

简介: 两数之和算法讨论

简说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%

相关文章
|
19天前
|
机器学习/深度学习 算法 Java
数论中的十个基本概念
数论中的十个基本概念
|
8月前
|
存储 人工智能 算法
【算法分析与设计】动态规划(下)(一)
【算法分析与设计】动态规划(下)
|
8月前
|
存储 算法
【算法分析与设计】动态规划(下)(三)
【算法分析与设计】动态规划(下)
|
8月前
|
消息中间件 人工智能 算法
【算法分析与设计】动态规划(下)(二)
【算法分析与设计】动态规划(下)
|
12月前
|
算法 搜索推荐
【1到100求和学算法】1#开篇
【1到100求和学算法】1#开篇
55 0
|
12月前
|
算法 搜索推荐
1到100求和学算法之开篇
1到100求和学算法之开篇
50 0
|
算法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
80 0
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
|
存储 算法 搜索推荐
八大排序算法总结+例题练习(正在不断补充...)
八大排序算法总结+例题练习(正在不断补充...)
八大排序算法总结+例题练习(正在不断补充...)
|
算法
基础算法练习200题13、判断质数
基础算法练习200题13、判断质数
77 0