题解 | #和为S的两个数字# golang

和为S的两个数字

http://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

func FindNumbersWithSum( array []int ,  sum int ) []int {
    // write code here
    left :=0
    right := len(array)-1

    if left==right {
        return []int{}
    }
//     maxInt := int(^uint(0) >> 1)
    maxInt := 100000
    var tempMu int
    answer := make([]int,2)
    flag := false
    var temp int
    for left < right {
        temp = array[left]+array[right]
        if temp<sum {
            left++
        } else if temp>sum {
            right--
        } else {
            tempMu = array[left] * array[right]
            if tempMu<maxInt {
                flag = true
                answer[0]=array[left]
                answer[1]=array[right]
                maxInt = tempMu
            }
            left++
        }
    }

    if flag {
        return answer
    } else {
        return []int{}
    }

}
全部评论

相关推荐

点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
数开小菜鸡_暂退沉淀版:大二第三段,还是字节,这下真得点点举办了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务