Go Missing Integer
func missingInteger(a []int) int {
	seen := make(map[int]bool, len(a))
	for _, v := range a {
		seen[v] = true
	}

	unique := make([]int, 0, len(seen))
	for v := range seen {
		unique = append(unique, v)
	}
	sort.Ints(unique)

	min := 1
	for _, v := range unique {
		if v > 0 {
			if min != v {
				break
			}
			min++
		}
	}

	return min
}

This records the positive numbers that exist, then returns the smallest positive value that is still missing.