From 98a0c7d04e4268e051cdc4185c6a943ccc98a285 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sun, 17 Aug 2025 00:13:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E9=95=BF=E8=BF=9E=E7=BB=AD=E5=BA=8F?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Hash/zuichanglianxuxulie/main.go | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Hash/zuichanglianxuxulie/main.go diff --git a/Hash/zuichanglianxuxulie/main.go b/Hash/zuichanglianxuxulie/main.go new file mode 100644 index 0000000..a010195 --- /dev/null +++ b/Hash/zuichanglianxuxulie/main.go @@ -0,0 +1,42 @@ +package main + +import ( + "fmt" + "sort" +) + +func main() { + fmt.Println(longestConsecutive([]int{0})) +} + +func longestConsecutive(nums []int) int { + exist := make(map[int]struct{}) + hash := make(map[int]int) + maxresult := 0 + sort.Slice(nums, func(i, j int) bool { + return nums[i] < nums[j] + }) + for i := 0; i < len(nums); i++ { + exist[nums[i]] = struct{}{} + } + for i := 0; i < len(nums); i++ { + j := nums[i] + v := 0 + for { + j++ + if _, ok := exist[j]; ok { + v += 1 + if _, okk := exist[j+1]; okk { + delete(exist, j) + } + } else { + break + } + } + hash[nums[i]] = v + 1 + if v >= maxresult { + maxresult = v + 1 + } + } + return maxresult +}