1. Two Sum

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 same element twice.

Example:

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

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

===========大致题目意思================

1.两者求和

有一个整型数组,返回结果依然是数组,元素是给定数组的两个下标,这两个下标对应的元素相加等于一个特定的目标数值

思路一:

1. 需要进行两层for循环;

2. 第二层for循环下标应从第一个for循环下标+1开始,防止重复相加,及自己和自己相加;

3. 条件语句应该是两个元素相加等于目标数字时,获得这两个元素对应的下标放入数组,并返回

实现代码如下:

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

两层for循环好理解但是效率太低,可以使用一层for循环就可以实现 ,运行效率大大提高:

思路二:

1. 定义一个字典,key放数组的元素值,value放下标;

2. 一层for循环记录一个下标;

3. 判断字典中指定目标数减去当前下标对应的元素值的差值为字典的key,看对应的这个key存不存在value

3.1 若不存在,则将这个元素为key的字典设置value值为当前下标;

3.2 若存在,则将这个差值为下标对应的字典value值追加到结果数组中,在追加当前下标,再返回目标数据

实现代码如下:

class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var resultNums:[Int] = []
var numberDic:[Int : Int] = [:] for i in 0 ..< nums.count {
if numberDic[target-nums[i]] != nil {
resultNums.append(numberDic[target - nums[i]]!)
resultNums.append(i) return resultNums
} else {
numberDic[nums[i]] = i
}
} return resultNums
}
}

PS:题目应该注意的点:返回的是下标,而不是下标对应的元素

[LeetCode] 1.Two Sum - Swift的更多相关文章

  1. LeetCode 01 Two Sum swift

    class TwoSum { func sumTow(nums: [Int], target: Int)->[Int]{ ,]; ;x<nums.count;x++){ ;y<num ...

  2. Java for LeetCode 216 Combination Sum III

    Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...

  3. LeetCode 1 Two Sum 解题报告

    LeetCode 1 Two Sum 解题报告 偶然间听见leetcode这个平台,这里面题量也不是很多200多题,打算平时有空在研究生期间就刷完,跟跟多的练习算法的人进行交流思想,一定的ACM算法积 ...

  4. [leetCode][013] Two Sum 2

    题目: Given an array of integers that is already sorted in ascending order, find two numbers such that ...

  5. [LeetCode] #167# Two Sum II : 数组/二分查找/双指针

    一. 题目 1. Two Sum II Given an array of integers that is already sorted in ascending order, find two n ...

  6. [LeetCode] #1# Two Sum : 数组/哈希表/二分查找/双指针

    一. 题目 1. Two SumTotal Accepted: 241484 Total Submissions: 1005339 Difficulty: Easy Given an array of ...

  7. [array] leetcode - 40. Combination Sum II - Medium

    leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...

  8. [array] leetcode - 39. Combination Sum - Medium

    leetcode - 39. Combination Sum - Medium descrition Given a set of candidate numbers (C) (without dup ...

  9. LeetCode one Two Sum

    LeetCode one Two Sum (JAVA) 简介:给定一个数组和目标值,寻找数组中符合求和条件的两个数. 问题详解: 给定一个数据类型为int的数组,一个数据类型为int的目标值targe ...

随机推荐

  1. django如何给上传的图片重命名(给上传文件重命名)

    1.先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在storage.py中添加如下代码: # -*- coding: UTF-8 -* ...

  2. TortoiseGit状态图标不能显示

    一开始网上搜到的办法基本都一样,都试过了,没有效果: 办法一: 注册表中找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ ...

  3. Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

    本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...

  4. Unix系统编程()在文件特定偏移量处的IO:pread和pwrite

    首先我想问的是这两个p代表的是什么? 系统调用pread和pwrite完成与read和write相类似的工作,只是前两者会在offset参数所指定的位置进行文件IO操作,而非始于文件的当前偏移量处,并 ...

  5. HBase和ZooKeeper

    HBase和ZooKeeper HBase内置有ZooKeeper,也可以使用外部ZooKeeper. 让HBase使用一个已有的不被HBase托管的Zookeep集群,需要设置 conf/hbase ...

  6. UML概述

    UML (Unified Modeling Language)统一建模语言,是描述.构造和文档化系统制品的可视化语言,是一种图形表示法. UML用途:UML是一种工具,主要用在我们对软件用面向对象的方 ...

  7. 让div也出现滑动框。

    <div id="box" style="height: 300px; width: 200px; border:1px solid #CCC; overflow: ...

  8. 《Linux实验要求》

    实验 1:登录和使用基本的 Linux 命令 实验环境: 安装了 Red Hat Enterprise Linux 6.0 可运行系统,并且是成功验证系统. 有另外一个无特权用户 student,密码 ...

  9. python入门(九):网络编程和多线程

    一.网络编程 Socket简介 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. ...

  10. iOS开发之--FMDB的使用

    在很多时候,我们会用到数据库,我们移动端使用的数据库,一般都是嵌入型数据库,是一种较轻型的数据库, 一般很多时候,大牛封装的FMDB的第三方,已经足够满足我们的需求了! 现在分享一下自己的学习心得,希 ...