【Leetcode】两数之和 @ systemime | 2022-01-26T16:53:55+08:00 | 1 分钟阅读 | 更新于 2022-01-26T16:53:55+08:00

描述

# 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 
# 
#  你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 
# 
#  你可以按任意顺序返回答案。 
# 
#  
# 
#  示例 1: 
# 
#  
# 输入:nums = [2,7,11,15], target = 9
# 输出:[0,1]
# 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
#  
# 
#  示例 2: 
# 
#  
# 输入:nums = [3,2,4], target = 6
# 输出:[1,2]
#  
# 
#  示例 3: 
# 
#  
# 输入:nums = [3,3], target = 6
# 输出:[0,1]
#  
# 
#  
# 
#  提示: 
# 
#  
#  2 <= nums.length <= 10⁴ 
#  -10⁹ <= nums[i] <= 10⁹ 
#  -10⁹ <= target <= 10⁹ 
#  只会存在一个有效答案 
#  
# 
#  进阶:你可以想出一个时间复杂度小于 O(n²) 的算法吗? 
#  Related Topics 数组 哈希表 👍 13273 👎 0

题解

python-1

以字典记录索引

class Solution(object):
    def twoSum(self, nums, target):

        cc = {val: idx for idx, val in enumerate(nums)}

        for val in cc:
            temp = target - val
            if temp in cc:
                if val != temp:
                    return cc[val], cc[temp]
                elif nums.count(val) > 1:
                    idx = nums.index(val)
                    return idx, nums.index(val, idx+1)

python-2

动态添加到数组中优化

class Solution(object):
    def twoSum(self, nums, target):

        cc = {}
        for idx, val in enumerate(nums):
            tmp = target - val
            if tmp in cc:
                return cc[tmp], idx
            cc[val] = idx

© 2018 - 2022 systemime 的博客

Powered by Hugo with theme Dream.

---

avatar
关于我

systemime 的博客

记录一些生活与技术的事或思考

毕业于 🏫 山东科技大学泰山科技学院

目前职位为Python后端开发工程师

热爱代码,热爱开源

主要的技术栈是:

  • python
  • celery
  • django
  • shell
  • sql
  • go
  • nginx

爱好

  • 羽毛球
  • 编码
我的一些开源项目

计划或项目:

  • skill_test ➡️ 一个包含项目常用的django模板:常用脚本、单测方法、数据库连接池、异步请求池,restful风格的回调接口管理器 60%
  • Vbox ➡️ 一个基于k8s和docker的容器云平台,早期项目代码较简单 90%
  • YuQue-Assistant ➡️ 用于批量拉取语雀工作区文章,使用进程池+协程
  • 一个代理池 60%
  • simple_db_pool ➡️ 一个简单数据库连接池 100%
  • 一个电报消息转发脚本 90%
  • 使用flutter做一个app 计划中
  • 其他若干脚本(bilibili、微博图片视频下载、文件对比、图片颜色提取…)
其他

如果你喜欢我的博客、开源项目或者它们可以给你带来帮助,可以赏一杯咖啡 ☕ 给我。~

If you like my open source projects or they can help you. You can buy me a coffee ☕.~

PayPal

https://paypal.me/systemime

支付宝赞赏码

alipay

微信赞赏码

wechat

最好附加一下信息或者留言,方便我可以将捐助记录 📝 下来,十分感谢 🙏。

It is better to attach some information or leave a message so that I can record the donation 📝, thank you very much 🙏.