zoukankan      html  css  js  c++  java
  • LeetCode First Missing Positive

    Given an unsorted integer array, find the first missing positive integer.

    For example,
    Given [1,2,0] return 3,
    and [3,4,-1,1] return 2.

    Your algorithm should run in O(n) time and uses constant space.

     1 public class Solution {
     2     public int firstMissingPositive(int[] A) {
     3         if (A.length == 0) {
     4             return 1;
     5         }
     6         int i=0;
     7         int n = A.length;
     8         while (i < n) {
     9             if (A[i] != i + 1 && A[i] >= 1 && A[i] <= n && A[A[i] - 1] != A[i]) {
    10                 swap(A,i,A[i]-1);
    11             }else ++i;
    12         }
    13         for (int j = 0; j < A.length; j++) {
    14             if (A[j] != j + 1) {
    15                 return j + 1;
    16             }
    17         }
    18         return n + 1;
    19     }
    20         void swap(int[] A, int a, int b) {
    21         int temp = A[a];
    22         A[a] = A[b];
    23         A[b] = temp;
    24     }
    25 }
  • 相关阅读:
    Flesch Reading Ease (poj 3371)
    保留道路
    列车调度
    三角形
    高精度加法
    AC自动机(1)
    线段树
    并查集(3)
    并查集(2)
    并查集
  • 原文地址:https://www.cnblogs.com/birdhack/p/4219944.html
Copyright © 2011-2022 走看看