zoukankan      html  css  js  c++  java
  • 041 First Missing Positive 第一个缺失的正数

    给一个未排序的数组,找出第一个缺失的正整数。
    例如,
    [1,2,0] 返回 3,
    [3,4,-1,1] 返回 2。
    你的算法应该在 O(n) 的时间复杂度内完成并且使用常数量的空间。
    详见:https://leetcode.com/problems/first-missing-positive/description/

    Java实现:

    class Solution {
        public int firstMissingPositive(int[] nums) {
            int n=nums.length;
            if(n<1||nums==null){
                return 1;
            }
            for(int i=0;i<n;++i){
                while(nums[i]>0&&nums[i]<=n&&nums[i]!=nums[nums[i]-1]){
                    int tmp=nums[nums[i]-1];
                    nums[nums[i]-1]=nums[i];
                    nums[i]=tmp;
                }
            }
            for(int i=0;i<n;++i){
                if(nums[i]!=i+1){
                    return i+1;
                }
            }
            return n+1;
        }
    }

     参考:https://www.cnblogs.com/grandyang/p/4395963.html

  • 相关阅读:
    Next Permutation
    Generate Parentheses
    Unique Binary Search Trees II
    LDP LSP建立
    LDP标签分发和管理
    维护LDP会话
    LDP会话状态机
    LDP会话建立过程
    LDP发现机制
    LDP术语
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8689002.html
Copyright © 2011-2022 走看看