zoukankan      html  css  js  c++  java
  • 两数之和(无序整数数组)-基于Go

    给定一个无序的整数数组numbers,从数组中找出两个数满足:
    两数之和等于目标数target,且两个数不能是同一个数,
    假设每个输入只对应唯一的答案,不能重复使用同一个元素(下标不能相同)。返回两数的下标。

    • 暴力解法
    • map打标记
    package main
    
    import (
    	"fmt"
    )
    
    func bfSolution(nums []int, target int)(int, int){
    	for i:=0;i<len(nums);i++{
    		for j:=i+1;j<len(nums);j++{
    			if nums[i]+nums[j]==target{
    				return i,j
    			}
    		}
    	}
    	return -1,-1
    }
    
    func solution(nums []int, target int)(int, int){
    	length := len(nums)
    	var flags = make(map[int]int, length)
    	for i:=0;i<length;i++{
    		j, ok := flags[target-nums[i]]
    		if ok{
    			return j, i
    		}
    		flags[nums[i]] = i
    	}
    	return -1, -1
    }
    
    func main(){
    	var nums = []int{-11,-13,3,4,5,6}
    	var target = 7
    	//i, j := bfSolution(nums, target)
    	i, j := solution(nums, target)
    	fmt.Printf("%d, %d
    ", i, j)
    }
    
  • 相关阅读:
    如何处理数集据不平衡的问题
    xgb&lgb&ctb区别
    LDA与gibbs采样
    撸了一个 Feign 增强包
    行为驱动模型-Behave
    MySQL 主从复制常见错误答疑
    POJ 1191
    POJ 1141
    HDU 1754
    POJ 3468
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14629179.html
Copyright © 2011-2022 走看看