https://oj.leetcode.com/problems/first-missing-positive/