码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2019-01-19 22:56:48      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:turn   blog   get   target   stat   col   一个   lin   sdn   

思路:

参考这个思路

即:将每个数字放在对应的第几个位置上,比如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. 第一个缺失正数

标签:turn   blog   get   target   stat   col   一个   lin   sdn   

原文地址:https://www.cnblogs.com/ruoh3kou/p/10293497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!