LeetCode - #1 Two Sum


文章目录

    • 前言
    • [1. 描述](#1. 描述)
    • [2. 示例](#2. 示例)
    • [3. 答案](#3. 答案)

前言

我们社区从本期开始会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。

不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。

1. 描述

已知一个整数数组 nums 和一个整数 target,取数组中任意两个值相加的和等 整数 target,返回这两个值在数组中的索引。

假设:

  1. 只有一个有效答案
  2. 同一个值不能重复取两次
  3. 可以按任意顺序返回答案

2. 示例

示例 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]

3. 答案

swift 复制代码
class TwoSum {
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var dict = [Int: Int]()
  
        for (i, num) in nums.enumerated() {
            if let lastIndex = dict[target - num] {
                return [lastIndex, i]
            }
    
            dict[num] = i
        }
  
        fatalError("No valid outputs")
    }
}
  • 主要思想:遍历数组并在字典中存储目标 - numsi
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

该算法题解的 github 仓库地址是:https://github.com/soapyigu/LeetCode-Swift

点击前往 LeetCode 练习

相关推荐
文丑颜不良啊6 小时前
LeetCode276~300题目解析
java·leetcode
荆棘鸟智能6 小时前
短历时洪水预报算法实践:水文模型与 LightGBM 残差订正融合
人工智能·算法·机器人
wuyk5556 小时前
《WiFi 嵌入式物联网开发全套实战》 | 第 45 章【终章】WiFi 开发全套知识复盘 + 面试高频题 + 进阶路线
物联网·面试·职场和发展
葫三生6 小时前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源
catcatuncle6 小时前
OpenWorkBuddy 部署排错手册:从源码启动到自己搭一个给团队用,七个最容易卡住的地方
算法
avi91116 小时前
【AI教人】在Inspector显示所有Delegate-Odin Inspector之三
java·前端·算法·delegate·inspector·editor扩展·unity editor
淡海水7 小时前
06-02-源码-增量标记算法实现
算法·unity·c#·gc
碧海银沙音频科技研究院7 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
云淡风轻~窗明几净7 小时前
角谷猜想与百度AI的对话dialog(原始稿)
人工智能·算法·机器学习·图论
小O的算法实验室8 小时前
ASOC,分层分数阶粒子群算法+无人机电场路径规划
算法