用java代码实现“给定一个整数数组,要求返回不在数组中的最小正整数”
时间: 2023-06-10 10:03:15 浏览: 166
一个未排序的整数数组,请找出其中没有出现的最小的正整数。
5星 · 资源好评率100%
好的,我可以为您提供示例代码,以下是使用Java实现该功能的代码:
```java
public int findMissingPositive(int[] nums) {
int n = nums.length;
for (int i = 0; i < n; i++) {
// 将元素放到正确的位置上
while (nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) {
int tmp = nums[nums[i] - 1];
nums[nums[i] - 1] = nums[i];
nums[i] = tmp;
}
}
for (int i = 0; i < n; i++) {
if (nums[i] != i + 1) {
// 如果当前位置没有对应的数字,则返回当前位置加 1
return i + 1;
}
}
// 如果数组中的所有数字都存在,则返回 n+1
return n + 1;
}
```
在此Java代码示例中,我们首先遍历整个数组,将每个元素放到正确的位置上。然后再次遍历该数组以查找缺失的最小正整数。如果当前位置没有对应的数字,则返回该位置加1,如果数组中的所有数字都存在,则返回n + 1。
阅读全文