写一个程序，输入一个整数数组并返回数组中缺失的最小正整数。

[0, 1, 3, 5, 6]
```python
def find_missing_number(nums):
    nums.append(0)
    n = len(nums)
    
    for i in range(n):
        while nums[i] > 0 and nums[i] < n and nums[nums[i]] != nums[i]:
            nums[nums[i]], nums[i] = nums[i], nums[nums[i]]
    
    for i in range(1, n):
        if nums[i] != i:
            return i
    
    return n

print(find_missing_number([0, 1, 3, 5, 6])) # 2
```
注释：该解法基于置换的思想，即将每个数字放到它应该在的位置上。最后扫描数组，找到第一个不在它应该在的位置上的正整数，即为缺失的最小正整数。如果数组元素均在它应该在的位置上，则缺失的最小正整数为 $n+1$。