两数之和算法讨论

简介: 两数之和算法讨论

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

相关文章
|
9月前
|
Linux Shell 数据库
【YashanDB数据库】yasql登录有特殊字符@导致无法登录
【YashanDB数据库】yasql登录有特殊字符@导致无法登录
|
负载均衡
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
307 0
|
SQL JavaScript 关系型数据库
Sequelize操作MySQL基本用法1
Sequelize操作MySQL基本用法
|
自然语言处理 中间件 测试技术
中间件数据格式结构化数据与非结构化数据之间的转换
中间件数据格式结构化数据与非结构化数据之间的转换
343 3
|
存储 SQL JSON
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
165 0
|
存储 编译器 数据处理
栈溢出及解决方法
栈溢出及解决方法
|
网络安全
socks5代理连接成功无法访问http协议的站点
无法通过SOCKS5代理访问HTTP网站可能由多个原因引起,如代理服务器不支持HTTP、配置错误、防火墙阻拦、连接问题、身份验证失败、浏览器设置不当或服务器被封锁。检查并解决这些因素,若问题持续,需深入排查或联系服务提供商。
|
消息中间件 运维 监控
云原生(中间件)热卖产品串讲| 学习笔记
快速学习云原生(中间件)热卖产品串讲
云原生(中间件)热卖产品串讲| 学习笔记
|
人工智能 算法 决策智能
MindOpt云上建模求解平台功能的简单介绍
MindOpt云上建模求解平台是阿里巴巴达摩院研发的一款“优化领域”的云平台。它结合了最新的算法研究和云技术,为用户提供了一个易于使用的界面和强大的后台计算能力。该平台支持广泛的优化问题,包括线性规划、整数规划、非线性规划和混合整数规划等。
|
机器学习/深度学习 JSON Rust
我为什么将机器学习主力语言从Python转到Rust
Rust语言诞生于2010年,一种多范式、系统级、高级通用编程语言,旨在提高性能和安全性,特别是无畏并发。虽然与Python相比,Rust还年轻,很多库还在开发中,但Rust社区非常活跃并且增长迅猛。很多大厂都是Rust基金会的成员,都在积极地用Rust重构底层基础设施和关键系统应用。
1360 0
我为什么将机器学习主力语言从Python转到Rust

热门文章

最新文章