/**
* 找出不在数组中的最小自然数
* 规则:tree[i] = i+1{1,2,...,length}
* @param tree
* @return
*/
public int findMin(int[] tree) {
int length = tree.length;
for (int i = 0; i < length; i++) { // 用于维护规则
while (tree[i] > 0 && tree[i] <= length && tree[tree[i] - 1] != tree[i]) {
int temp = tree[tree[i] - 1];
tree[tree[i] - 1] = tree[i];
tree[i] = temp;
}
}
for (int i = 0; i < length; i++) {
if (tree[i] != i + 1) {
return i + 1;
}
}
return length + 1;
}
找出不在数组中的最小自然数
最新推荐文章于 2022-07-19 22:15:46 发布