[小米OJ] 7. 第一个缺失正数

Posted Ruoh3kou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[小米OJ] 7. 第一个缺失正数相关的知识,希望对你有一定的参考价值。

思路:

参考这个思路

即:将每个数字放在对应的第几个位置上,比如1放在第1个位置上,2放在第2个位置上.

注意几个点:将每个数放在它正确的位置,前提是该数是正数,并且该数小于序列长度,并且交换的两个数字不相等。

    private static String solution(String line) {
        String[] strs = line.split(",");
        int[] nums = new int[strs.length];
        for (int i = 0; i < nums.length; i++) {
            nums[i] = Integer.parseInt(strs[i]);
        }

        for (int i = 0; i < nums.length; i++) {
            while (nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] != nums[i]) {
                int temp = nums[nums[i] - 1];
                nums[nums[i] - 1] = nums[i];
                nums[i] = temp;
            }
        }
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != i + 1)
                return (i + 1) + "";
        }
        return (nums.length + 1) + "";
    }

 

以上是关于[小米OJ] 7. 第一个缺失正数的主要内容,如果未能解决你的问题,请参考以下文章

41. 缺失的第一个正数

41. 缺失的第一个正数

LeetCode:缺失的第一个正数41

[LeetCode 41.] 缺失的第一个正数

leetcode 41 缺失的第一个正数

LeetCode 41. 缺失的第一个正数 | Python