leetcode——41. 缺失的第一个正数

class Solution(object):
    def firstMissingPositive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if nums==[]:
            return 1
        for i in nums:
            if i<=0:
                nums.remove(i)
        if nums==[]:
            return 1
        for i in range(1,len(nums)+1):
            if i not in nums:
                return i
        return len(nums)+1
执行用时 :24 ms, 在所有 python 提交中击败了90.19%的用户
内存消耗 :11.8 MB, 在所有 python 提交中击败了26.09%的用户
                                                                                                             ——2019.10.14

复习,用java又写了一遍:

public int firstMissingPositive(int[] nums) {
        if(nums.length == 0){
            return 1;
        }
        Arrays.sort(nums);
        ArrayList<Integer> list = new ArrayList<>();
        list.add(nums[0]);
        for(int i = 1;i<nums.length;i++){
            if(nums[i] == nums[i-1]){
                continue;
            }else{
                list.add(nums[i]);
            }
        }
        int[] a = list.stream().mapToInt(Integer::valueOf).toArray();
        int i = 1;
        int k = 0;
        while(k<a.length){
            if(a[k]<=0){
                k++;
            }else if(a[k] != i){
                return i;
            }else{
                i++;
                k++;
            }
        }
        return i;
    }

效率并没有很好。

——2020.7.6

我的前方是万里征途,星辰大海!!
原文地址:https://www.cnblogs.com/taoyuxin/p/11670778.html