博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 1:两数之和
阅读量:7256 次
发布时间:2019-06-29

本文共 1363 字,大约阅读时间需要 4 分钟。

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。  

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]复制代码

方法1,暴力解法。

直接每一个元素都与自己之前的元素相加看是否有目标值,有就输出。

代码如下:

class Solution:    def twoSum(self, nums, target):        """        :type nums: List[int]        :type target: int        :rtype: List[int]        """        n = len(nums)        for i in range(n):            for j in range(i):                if nums[i] + nums[j] == target:                    target_num = [i,j]                    return target_num        return None复制代码

时间消耗和空间消耗如下:

执行用时: 4500 ms, 在Two Sum的Python3提交中击败了32.72% 的用户

内存消耗: 7.3 MB, 在Two Sum的Python3提交中击败了85.58% 的用户

方法2,使用enumerate函数

查看评论使用enumerate 函数效率更高。

enumerate函数可以将一个数组转化为一个key从开始,值为数组对应元素的字典。

代码如下:

class Solution:    def twoSum(self, nums, target):        """        :type nums: List[int]        :type target: int        :rtype: List[int]        """        if not nums:            return None            d = dict()        for i,item in enumerate(nums):            tmp = target – item            if tmp in d:                return [i, d[tmp]]                d[item] = i        return None复制代码

时间消耗和空间消耗如下:

执行用时: 44 ms, 在Two Sum的Python3提交中击败了99.77% 的用户

内存消耗: 7.9 MB, 在Two Sum的Python3提交中击败了46.97% 的用户

转载于:https://juejin.im/post/5cde1ca66fb9a037c524b9e0

你可能感兴趣的文章
LINQ学习笔记(7) 标准查询运算符(上)
查看>>
分配虚拟化磁盘路径的优先级
查看>>
Django未来将支持Python3
查看>>
分享32款令人惊叹的文字信息图
查看>>
Robot Framework安装指南
查看>>
vc++ 6.0对话框上无法显示中文(乱码)
查看>>
VC中字符串由于版本不同而导致的错误问题
查看>>
将Xml字符串转换成(DataTable || DataSet || XML)对象
查看>>
Android用Application设置全局变量以及使用
查看>>
android-远程图片获取和本地缓存
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
MySQL的一些基本操作
查看>>
InstallShield 12 制作安装包
查看>>
Option Handling
查看>>
批量另存mxd
查看>>
[android] 看博客学习Android常见的几种RuntimeException
查看>>
分布式缓存技术redis学习(一)——redis简介以及linux上的安装
查看>>
使用 IDEA + Maven + Git 快速开发 JAVA或者Web 应用(转)
查看>>
为什么kafka使用磁盘而不是内存
查看>>
jumpserver安装及使用教程
查看>>