NC61 两数之和

本文介绍了解决编程题目的方法,利用哈希表快速查找特性,判断给定整型数组中是否存在两个数相加等于目标值。通过遍历数组,将每个数及其索引存入哈希表,然后检查target减去当前数在表中是否存在,找到即返回结果。
摘要由CSDN通过智能技术生成

牛客网 NC61 两数之和
https://www.nowcoder.com/share/jump/7890810391698077140732

在这里插入图片描述
记录:维护哈希表,题目满足,numbers内必有两数相加为target,则可理解为,每次只需要判断target减去当前数,是否能在维护的表内查到。下述代码:

package main

import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param numbers int整型一维数组
 * @param target int整型
 * @return int整型一维数组
 */

func main() {
	fmt.Println(twoSum([]int{-3, 4, 3, 90}, 0))
}

func twoSum(numbers []int, target int) []int {
	// write code here
	numMap := make(map[int]int, len(numbers))
	for i, number := range numbers {
		if val, ok := numMap[target-number]; ok {
			return []int{val + 1, i + 1}
		}
		numMap[number] = i
	}
	return nil
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值