diff --git a/leetcode/41.FirstMissingPositive/sol.go b/leetcode/41.FirstMissingPositive/sol.go new file mode 100644 index 0000000..647f6aa --- /dev/null +++ b/leetcode/41.FirstMissingPositive/sol.go @@ -0,0 +1,27 @@ +// https://leetcode.com/problems/first-missing-positive + +package main + +import "fmt" + +func firstMissingPositive(nums []int) int { + m := make(map[int]bool) + + for _, num := range nums { + if num > 0 { + m[num] = true + } + } + + for i := 1; ; i++ { + if !m[i] { + return i + } + } +} + +func main() { + nums := []int{3, 4, -1, 1} + + fmt.Println(firstMissingPositive(nums)) +}