[小米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) + ""; }