首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >go语言面试题:两数之和

go语言面试题:两数之和

作者头像
GeekLiHua
发布2025-01-21 14:34:17
发布2025-01-21 14:34:17
1650
举报
文章被收录于专栏:JavaJava

以下是使用go语言实现两数之和的代码,已加上详细注释:

代码语言:javascript
复制
package main

import "fmt"

// twoSum 函数接收一个整形数组 nums 和一个目标值 target,返回满足条件的两个数的索引
func twoSum(nums []int, target int) []int {
    numMap := make(map[int]int) // 用来存储数字对应的索引
    for i, num := range nums { // 遍历数组
        complement := target - num // 计算当前数字相差的值
        if j, ok := numMap[complement]; ok { // 如果存在该值,则说明为满足条件的索引
            return []int{j, i} // 返回对应索引
        }
        numMap[num] = i // 将当前数字及其下标存入 numMap 中
    }
    return nil // 若未找到,则返回 nil
}

func main() {
    nums := []int{2, 7, 11, 15} // 测试用例
    target := 9                 // 测试用例
    result := twoSum(nums, target) // 调用两数之和函数
    fmt.Println(result)           // 打印结果
}

在此代码中,我们首先创建了一个 map 变量 numMap,用于存储数字对应的索引。接着使用 for 循环遍历该传递进来的数组。对于每一个要搜索的数字,做以下操作:

  1. 计算目标值与该数字的差值 complement
  2. numMap 中查找该差值 complement 是否存在,如果不存在,保存当前数字及其下标;反之则返回该数字及其对应的索引。

最后,若遍历完了整个数组,仍未找到满足条件的数,则返回 nil

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档