1. 两数之和

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

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

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

  

方法一: 暴力法:

leetCode 给出运行时间 60ms
func twoSum(nums []int, target int) []int {
for i := 0; i < len(nums)-1; i++ {
for j := i+1; j < len(nums); j++ {
if nums[i]+nums[j] == target {
return []int{nums[i], nums[j]}
}
}
}
return nil
}

  

方法二: 利用map, 借助空间 降低时间复杂度

leetCode 给出运行时间 8ms
package main

import "fmt"

func main(){
nums := []int{3,3}
fmt.Println(twoSum(nums,6))
} func twoSum(nums []int, target int) []int {
numsMap := make(map[int]int)
for i := 0; i < len(nums); i++ {
numsMap[nums[i]] = i
}
for i := 0; i < len(nums); i++ {
if _,ok := numsMap[target-nums[i]];ok && numsMap[target-nums[i]] != i{
return []int{numsMap[target-nums[i]], i}
}
} return nil
}

  

最新文章

  1. python学习之路 第三天
  2. TKT中文编程语言简介
  3. 如何开发、调试Hybrid项目-- 入门篇
  4. [SLAM]Karto SLAM算法学习(草稿)
  5. Provisional, Temporary 和Interim 的区别
  6. Delphi 2 Unleashed (一) 介绍
  7. Servlet,GenericServlet和HttpServlet的继承关系
  8. class卸载、热替换和Tomcat的热部署的分析
  9. Javascript基础(2)
  10. android default_workspace.xml
  11. HTTP Digest authentication
  12. git上传代码到github
  13. Postgres数据库在Linux中的I/O优化
  14. 自定义cell,根据数据源,要对cell的布局进行调整,没有实现调整的相应效果
  15. pod install 出现 Unable to find a specification for `xxxxx` 解决方案
  16. photoshop实例实战(入门级)教程
  17. Flask中使用cookie和session
  18. echarts双y轴折线图柱状图混合实时更新图
  19. #7 //[CQOI2014]和谐矩阵
  20. 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

热门文章

  1. 【SQL优化】SQL优化工具
  2. Dobble的学习视频地址
  3. Linux网络编程(一):一个简单的socket程序
  4. hadoop 使用java操作hdfs
  5. Layui表格编辑【不依赖Layui的动态table加载】
  6. 虚拟机安装mac
  7. 洛谷 P2152 [SDOI2009]SuperGCD (高精度)
  8. js判断 nan null undefined的方法
  9. ASP.NET-JSON.NET技巧
  10. 弹性ScrollView,和下啦刷新的效果相似 实现下拉弹回和上拉弹回