两数之和算法讨论

简介: 两数之和算法讨论

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

相关文章
|
7月前
|
机器学习/深度学习 算法 Java
数论中的十个基本概念
数论中的十个基本概念
|
7月前
|
C语言
c语言编程练习题:7-29 二分法求多项式单根
c语言编程练习题:7-29 二分法求多项式单根
47 0
算法:图解位运算以及鸽巢原理应用
算法:图解位运算以及鸽巢原理应用
数论整理之特殊数one:斐波那契数列
数论整理之特殊数one:斐波那契数列
102 0
(博弈)(思维)(试除法判断质数)B - 是我仅会的GCD还是素数筛呢? G. Goodbye
(博弈)(思维)(试除法判断质数)B - 是我仅会的GCD还是素数筛呢? G. Goodbye
61 0
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
|
机器学习/深度学习 算法 C++
算法基础系列第四章——数论之质数与约数(1)
算法基础系列第四章——数论之质数与约数(1)
190 0
算法基础系列第四章——数论之质数与约数(1)
|
算法 C++
算法基础系列第四章——数论之质数与约数(2)
算法基础系列第四章——数论之质数与约数(2)
131 0
算法基础系列第四章——数论之质数与约数(2)
|
存储 算法
重温算法之最长回文子串
关于回文的题目,核心思路还是依次比较,找到回文,然后进行其他的操作,另外官方题解中心扩散法也是一个最优解。
110 0
重温算法之最长回文子串
1005. K 次取反后最大化的数组和 : 简单分情况讨论贪心模拟题
1005. K 次取反后最大化的数组和 : 简单分情况讨论贪心模拟题

热门文章

最新文章