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