美文网首页
go语法基础:leetcode1

go语法基础:leetcode1

作者: vaisy | 来源:发表于2022-02-14 18:06 被阅读0次

第一题的任务是实现一个两数之和的查找;
最基本的思路是首先初始化一个空的切片数组作为答案
然后依次遍历每个数,当它之后的某个数和它的和是target时就返回他们的下标。

func twoSum(nums []int, target int) []int {
    res:=[]int{}
    i:=0
    for i<len(nums)-1{
        j:=i+1
        for j<len(nums) {
            if nums[i]+nums[j]==target{
                res=append(res,i,j)
            }
            j++
        }
        i++
    }
    return res
}

题目也暗示了存在优于O(n^2)的解法,考虑到这里面几乎每个数都被比较了n次,完全可以先把下标和值取出来
即 如果我找到了val,那么去map查是否有target-val存在。存在就说明结果找到了
没存在就说明我找到了一个新的值,把这个值的下标和数加入map
这里需要注意go的一个特殊语法点:
;用来分割if里面两个连续的执行(由于go里通常用换行代表,其实很少看到;)

dex,ok:=m[target-val];
if ok{
}

和下文中对应的部分,是完全等价的

func twoSum(nums []int, target int) []int {
    res:=[]int{}
    m:=make(map[int]int)
    for index,val:=range nums{
        if dex,ok:=m[target-val];ok {
            return []int{index,dex}
        }else{
            m[val]=index;
        }
    }
    return res
}

相关文章

  • go语法基础:leetcode1

    第一题的任务是实现一个两数之和的查找;最基本的思路是首先初始化一个空的切片数组作为答案然后依次遍历每个数,当它之后...

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

  • go 基础学习

    1 go 基础go 语法基础go 官方资料如果由C ,C++ 基础, 学习go 比较容易,本文学习go ,主要是为...

  • docker 源码入门

    前言 docker是go语言编写的,要看docker源码,最起码要学会go的基础语法。 了解 docker 基础架...

  • Go语法基础

    变量声明 1 . var i int 一般用于声明全局变量2 . vname1,vname2 := v1,v2 ...

  • go 基础语法

  • GO基础语法

    1:一行一个语句,不需要;去处理。 2:通 + 连接字符 package main import fmt im...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • GO学习笔记(18) - 并发编程(3)- Select与Cha

    本文主要讲解Go并发编程之Select 目录 介绍 基础语法 timeout 综合实例 select 是 Go 中...

  • Java转Go后端开发Landing记录

    Java转Go后端开发Landing记录 基础语法 主要看Go 语言教程 | 菜鸟教程[https://www.r...

网友评论

      本文标题:go语法基础:leetcode1

      本文链接:https://www.haomeiwen.com/subject/gqkhlrtx.html