解题思路:

1、这里首先最重要的是理解题意,

2、利用哈希占坑思想,把坑位占了, 负数和0先设置成n+1的正值

3、之后,利用1-n的坐标对应的1-n的正整数的值,把相应坑位的值设置成负值,

4、最后,留下来的最前一个正值,就是结果值了

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int minNumberDisappeared (int[] nums) {
      int n = nums.length;
      // 先把所有负数到0的值设置为边界值,排除掉
      for(int i=0; i<n; i++) {
        if(nums[i]<=0) nums[i] = n+1;
      }

      // 通过hash占位把坑里面的有值的设置为负数
      for(int i=0; i<n; i++){
        if(Math.abs(nums[i])<=n) {
            nums[Math.abs(nums[i])-1] = -1*nums[Math.abs(nums[i])-1];
        }
      }

      // 返回第n个坑位>0的值,也就是最小值的所在的位置
      for(int i=0; i<n; i++) {
        if(nums[i] >0) {
            return i+1;
        }
      }
      return n+1;
    }
}