首页 > 代码库 > [LeetCode]41 First Missing Positive
[LeetCode]41 First Missing Positive
https://oj.leetcode.com/problems/first-missing-positive/
http://blog.csdn.net/linhuanmars/article/details/20884585
public class Solution { public int firstMissingPositive(int[] A) { // 如果可以排序,排序后从1开始检查 // 如果一个数为3,把它置换到第三个空格 // i不动,继续置换,死循环! // 如果i位 的值 < 0,i++ if (A == null || A.length == 0) return 1; int i = 0; while (i < A.length) { if (A[i] <= 0 || A[i] > A.length) { // Invalid number we don‘t care A[i] = -1; i++; continue; } if (A[i] == i + 1) { // Aready good i ++; continue; } // No need to swap // Avoid dead loop // 定义j方便coding int j = A[i] - 1; if (A[j] == A[i]) { A[i] = -1; i ++; continue; } // swap A[i] and A[A[i] - 1] int t = A[i]; A[i] = A[j]; A[j] = t; } // Check first -1 for (i = 0 ; i < A.length ; i ++) { if (A[i] < 0) return i + 1; } return A.length + 1; } }
[LeetCode]41 First Missing Positive
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。