two sum python_Python | Leetcode 之 Two Sum

说来惭愧,到现在才开始刷Leetcode,但迟到总比不到好。

题目:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the sameelement twice.

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1].

先上暴力解法:

class Solution:

def twoSum(self, nums: List[int], target: int) -> List[int]:

length = len(nums)

for i in range(length) :

for j in range(length):

if nums[i] == target - nums[j] and i != j:

return [i, j]

Submit看结果:

Runtime: 7780 ms, faster than 5.01% of Python3 online submissions for Two Sum.

Memory Usage: 13.8 MB, less than 24.07% of Python3 online submissions for Two Sum.

即使是第一道题,但这结果也太差了吧

两个for循环做了无用功,如果把list分成两部分来计算,也就是只用for循环一次呢?

class Solution:

def twoSum(self, nums: List[int], target: int) -> List[int]:

k = 0

for i in nums:

k += 1

if target - i in nums[k:]:

return(k -1, nums[k:].index(target - i) + k)

Submit看结果:

Runtime: 848 ms,faster than32.81%ofPython3online submissions forTwo Sum.

仍旧是连一半都没超过啊,娘匹西。

官方方法 Two-Pass Hash Table

class Solution:

def twoSum(self, nums: List[int], target: int) -> List[int]:

hashTable = {}

length = len(nums)

for i in range(length):

hashTable[nums[i]] = i

for i in range(length):

if target - nums[i] in hashTable and hashTable[target - nums[i]] != i:

return [i, hashTable[target - nums[i]]]

return([])

Submit看结果:

Runtime: 48 ms, faster than58.71%ofPython3online submissions forTwo Sum.

官方还提供One-Pass Hash Table,也就是每次插入一个元素,然后检查这个元素是否符合,以此类推。

class Solution:

def twoSum(self, nums: List[int], target: int) -> List[int]:

hashTable = {}

for i, num in enumerate(nums):

if target - num in hashTable:

return([hashTable[target - num], i])

break

hashTable[num] = i

return([])

但这个结果submit的结果并没有表现得如官方所说的那样。

总结:结果这个问题的方法有很多,从暴力到哈希表,除了要熟知基本的元素操作,便是懂得时间复杂度和空间复杂度的一个balance

关于Python语法的细节还是要加强,不然卡住的地方太多了

哈希表的概念要再加强一些

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Data Poisoning Attacks to Deep Learning Based Recommender Systems论文解读

1 摘要 在这项工作中,作者对基于深度学习的推荐系统的数据中毒攻击进行了首次系统研究。攻击者的目标是操纵推荐系统,以便向许多用户推荐攻击者选择的目标项目。为了实现这一目标,作者将精心设计的评分注入到推荐系统中的假用户。具体来说&a…

python爬虫视频 下载 黑马_Python爬虫能爬视频么(python爬虫零基础视频教程)

Python爬虫能爬视频么他视频没有的,但是跑了之后你要处理这个视频,就是问题的?你只需要,得到视频的播放地址,还是要把视频完整的下载到本地的。如果只是爬那个视频的下载地址,很简单,如果要下载…

机器学习+深度学习相关课程地址总结

1 吴恩达老师 机器学习课程视频链接:https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid8357728122787183773&spm_id_from333.337.0.0作业答案:https://github.com/Ayatans/Machine-Learning-homework深度学习课程:吴恩…

黑马商城项目源代码_Python学习路线图--Python框架与项目

Python学习路线图的Python框架部分主要有Django框架和Flask框架,学完这一部分就可以去找Web全栈工程师的工作了,独立开发前端和后端业务。Python学习路线图的Django框架部分需要掌握Web主流框架-Django的使用;可根据Web框架设计,开…

Membership Inference Attacks Against Recommender Systems论文解读

0 摘要 推荐系统通常针对高度敏感的用户数据进行训练,因此推荐系统潜在的数据泄露可能会导致严重的隐私问题。 本文首次尝试通过成员推理的角度来量化推荐系统的隐私泄漏。 与针对机器学习分类器的传统成员推理相比,本文的攻击面临两个主要差异。 首先&…

python分类预测降低准确率_十分钟掌握python机器学习特征选择

十分钟掌握python机器学习特征选择-1.jpg (33.2 KB, 下载次数: 0)2018-6-26 23:01 上传在机器学习中,特征选择是实践中的一步, 帮你在所有特征中选择对结果贡献最多的特征。 显然, 使用不相关数据会减少模型的精确性,尤其是线性算…

k近邻推荐用到的各种距离

1 kkk-近邻推荐原理 2 各种距离 2.1 欧几里得距离 d12(x1−x2)2(y1−y2)2d_{12} \sqrt{(x_{1} - x_{2})^2 (y_{1} - y_{2})^2}d12​(x1​−x2​)2(y1​−y2​)2​ 缺点:欧式距离是一种常用的距离度量,但它并不是尺度不变的,这意味着所计算…

python 分类变量回归_极简Python带你探索分类与回归的奥秘

为何使用人工智能和机器学习?地球的未来在于人工智能和机器学习。如果对这些技术一无所知,人们很快会发现自己落伍了。世界发展日新月异,每天都发生着不可思议的变化。在人工智能和机器学习中,有许多实现和技术能够解决实时问题。…

Fast Matrix Factorization for Online Recommendation with Implicit Feedback论文代码分析

1 数据结构 userCount&#xff1a;用户数 itemCount&#xff1a;项目数 user_ratings&#xff1a;ArrayList<ArrayList>&#xff0c; 问&#xff1a;此处为什么要用二维数组&#xff1f; 答&#xff1a;第1维是用户&#xff0c;第2维是用户对所有项目的评分。 testRatin…

stacking模型融合_【干货】比赛后期大招之stacking技术分享

各位同学大家好&#xff0c;我是本次参赛选手李博&#xff0c;比赛ID是深蓝&#xff08;DeePBluE&#xff09;。现在就读于北京邮电大学&#xff0c;是一名研一的在校生&#xff0c;研究方向是数据分析和机器学习。是的&#xff0c;我又来分&#xff08;na&#xff09;享&#…

多stream_基础之Lambda和Stream的邂逅

基础之Lambda和Stream的邂逅show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力&#xff01;引入是否有遇到看不懂身边同事代码的情况&#xff0c;是否有被面试官问到 Java 新特性不懂的情况。我掐指一算…

注意力机制--转载自我的学生隆兴写的博客

原文链接为&#xff1a;https://a-egoist.com/posts/a44b8419/&#xff0c;学生自己搭建的博客&#xff0c;点赞&#xff01; 1 Attention 1.1 什么是 Attention 灵长类动物的视觉系统中的视神经接受了大量的感官输入。在检查视觉场景时&#xff0c;我们的视觉神经系统大约每…

python正弦波和等腰三角波_正弦波脉宽调制(SPWM)原理

1、QPWM的概念 在进行脉宽调制时&#xff0c;使脉冲系列的占空比按正弦规律来安排。当正弦值为最大值时&#xff0c;脉冲的宽度也最大&#xff0c;而脉冲间的间隔则最小&#xff0c;反之&#xff0c;当正弦值较小时&#xff0c;脉冲的宽度也小&#xff0c;而脉冲间的间隔则较大…

推荐系统--矩阵分解(1)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 1 引入 一个矩阵可以分解为两个小矩阵的乘积&#xff0c;以音乐为例&#xff0c;利用潜在特征向量来给用户和音乐打上标签&#xff…

python dag调度系统开发_基于机器学习的DAG调度平台

什么是DAG?有向无环图树形结构&#xff1a;除根节点&#xff0c;每个节点有且仅有一个上级节点&#xff0c;下级节点不限。根节点没有上级节点。图结构&#xff1a;每个节点上级、下级节点数不限。DAG调度平台的定义及场景任务调度是在各行各业是个基础问题&#xff0c;当任务…

轻量级人脸识别算法

1 概述 轻量级人脸识别算法

python元组与列表的区别、简答题_细解python面试题(一)元组和列表的区别

可能略去了一些内容。1、列表VS元组在python编程中&#xff0c;我们经常搞不懂列表和元组的区别&#xff0c;或者哪些函数可以用于列表&#xff0c;哪些用于元组&#xff0c;那么跟随本文我们来深入的探索。2、元组元组是值的集合&#xff0c;我们用圆括号来申明它。元组中的类…

Yolo家族算法分析

1 历史简介 2 YOLO算法思想 YOLO算法的基本思想&#xff1a; &#xff08;1&#xff09;将图片划分为SSS \times SSS个网格&#xff1b; &#xff08;2&#xff09;计算每个边界框和置信度&#xff1b; &#xff08;3&#xff09;计算每个网格属于某个类别的概率&#xff1b; &…

u8 附件上传后存放路径_织梦DedeCms附件按月份保存的修改方法

正常情况下&#xff0c;dedecms织梦系统的图片附件是按日保存的&#xff0c;一天一个文件夹, 时间长了, 这样在allimg中就会生成很多文件夹, 不方便管理&#xff0e;虽然&#xff0c;dedecms织梦的后台设置有”附件保存形式”的先项, 但功能太弱&#xff0c;如果是在后台上传和…

推荐系统--矩阵分解(2)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 3 BiasSVD&#xff1a;考虑偏置 有一些用户会给出偏高的评分&#xff0c;有一些物品也会收到偏高的评分&#xff0c;比如电影观众为…