代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"sort"
)
func threeSum(nums []int) (res [][]int) {
sort.Ints(nums)
left, mid, right, n := 1, 0, len(nums)-1, len(nums)
for mid < n {
midValue := nums[mid]
left, right = mid+1, n-1
for left < right {
v := nums[left] + nums[mid] + nums[right]
if v == 0 {
res = append(res, []int{nums[left], nums[mid], nums[right]})
// 避免出现重复的三元组
for right > mid && nums[right-1] == nums[right] {
right--
}
}
if v < 0 {
left++
} else {
right--
}
}
// 避免出现重复的三元组
for mid < n && midValue == nums[mid] {
mid++
}
}
return res
}
func main() {
fmt.Println(threeSum([]int{0, 0, 0, 0, 0, 0}))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。