golang 两数之和

  • 给定一个切片以及一个目标值,返回第一对和为目标值的两个元素的下标

func TargetIndex(s []int64, target int64) (res []int64) {
    var m = make(map[int64]int64, len(s)) // 引入一个map来避免嵌套循环,O(n^2) ==> O(n)
    for i, v := range s {
        v2, ok := m[target-v]
        if ok {
            return []int64{v2, int64(i)}
        } else {
            m[v] = int64(i)
        }
    }

    return
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容