/**
* 找出不在数组中的最小自然数
* 规则: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;
}
找出不在数组中的最小自然数
猜你喜欢
转载自blog.csdn.net/for62/article/details/108548038
今日推荐
周排行