• 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         int result = 1; //if the array is empty, we result 1
     4         if(A.length > 0){
     5             for(int i = 0; i < A.length; ++i){
     6                 //do not forget the condition A[A[i] - 1] != A[i];
     7                 //otherwise, there is a dead loop on input, for example, [2,2]
     8                 if(A[i] > 0 && A[i] <= A.length && A[i] != i + 1 && A[A[i] - 1] != A[i]){
     9                     int temp = A[i];
    10                     int temp1 = A[A[i] - 1];
    11                     A[A[i] - 1] = A[i];
    12                     A[i] = temp1;
    13                     i = (temp > i + 1) ? i - 1 : i;
    14                 }
    15             }
    16             for(int i = 0; i < A.length; ++i){
    17                 if(A[i] != i + 1){
    18                     result = i + 1;
    19                     break;
    20                 }
    21                 else
    22                     result = A.length + 1;
    23             }
    24         }
    25         return result;
    26     }
    27 }

     

  • 相关阅读:
    第二篇 Flask 中的 Render Redirect HttpResponse
    第一篇 你好,我叫Flask
    redis发布订阅
    redis学习
    mysql+centos7+主从复制
    Linux系统基础优化及常用命令
    vim与程序员
    Shell基本命令
    js bom和dom
    javaScript基础
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3536454.html
Copyright © 2020-2023  润新知