1. Two Sum_Swift

难度

简单

题目

在给定的数组中找出一组特定的数字,使其和等于一个给定的值,并返回这组数字的索引。
Example 如下:

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

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

思路

思路一

通过二次遍历筛选符合条件的一组数字,时间复杂度为O(n²)

思路二

运用 hash 表,对于每个数先看和为 target 所需的数是否在 dict 内,如果已经在则直接返回,否则才把自身放进 dict 里。时间复杂度为 O(n)

代码

方法一

func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
    for i in 0..<nums.count {
        for j in i + 1..<nums.count {
            if nums[i] + nums[j] == target {
                return [i, j]
            }
        }
    }

    return [-1, -1]
}

方法二

func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
    var targetDic = [Int: Int]()

    for (index, num) in nums.enumerated() {
        guard let targetIndex = targetDic[target - num] else {
            targetDic[num] = index
            continue
        }
        return [targetIndex, index]
    }

    return [-1, -1]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,904评论 0 5
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,194评论 0 9
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,994评论 0 1
  • 1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 2、用C语言实现函数void ...
    希崽家的小哲阅读 6,654评论 0 12
  • 夢在左岸 沒有遠近 只有深淺 安然如故 是岸邊遲暮的落花 彼此相安 所有的錯過 如一口香濃的奶酪 輕吻舌尖上的味蕾...
    秋鳶子阅读 369评论 0 1

友情链接更多精彩内容