题解 | #三数之和#

三数之和

https://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711

package main

import "strconv"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param num int整型一维数组
 * @return int整型二维数组
 */
func threeSum(a []int) [][]int {
	// write code here
	ress := [][]int{}
	bubbleSort(a)
	n := len(a)
	isExist := map[string]bool{}
	for i := 0; i < n; i++ {
		for j := i + 1; j < n; j++ {
			for k := n - 1; k > j; k-- {
				if a[i]+a[j]+a[k] == 0 {
					if !isExist[strconv.Itoa(a[i])+strconv.Itoa(a[j])+strconv.Itoa(a[k])] {
						res := []int{a[i], a[j], a[k]}
						ress = append(ress, res)
                        isExist[strconv.Itoa(a[i])+strconv.Itoa(a[j])+strconv.Itoa(a[k])]=true
					}
				}
			}
		}
	}
	return ress
}

func bubbleSort(a []int) {
	n := len(a)
	for i := 0; i < n; i++ {
		for j := 0; j < n-i-1; j++ {
			if a[j] > a[j+1] {
				a[j], a[j+1] = a[j+1], a[j]
			}
		}
	}
}

全部评论

相关推荐

03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
谁知道呢_:你好,我是炮灰n+1号
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务