看了leetcode的空间O(1)解法自己写了遍代码,记录一下思路吧 主要是把原来数组当做hash表用的思想,由于如果数组中有空隙,解肯定在[1,n]之间,那么在数组相应的[0,n-1]位置标记这些存在的元素,比如遍历到一个4,那么就把下标为4-1=3的位置的值置为负数,置为负数这个点很巧妙,这个负数不能随意设置一个负数,必须是原来正数的相反数,因为如若不然,会篡改后面的信息。那么这就又引出了问题,数组中原来的负数怎么处理呢,答案是在上述步骤前先置为n+1,超过数组界限,这样不会修改数组中的位置信息,统一初始状态,避免置为相反数时冲突的问题。 给出java实现 public int minNu...