diff --git a/09 b/09 index 068dfad..04c1994 100644 --- a/09 +++ b/09 @@ -361,5 +361,43 @@ void BtreeToExp(BTree *root,int deep){ /*2018 给定一个含n个整数的数组,设计一个时间上尽可能高效的算法,找出数组中未出现的最小正整数 + 例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4 +*/ +/*思路: + 由于A中只有n个数,因此若最小的n个正整数全在A内的话,未出现的最小正整数则为n+1,反之,将A中n个数扫一遍后,1~n中有数没被扫到,则最小的那个为所求 + 分配一个用于标记的数组B[n],用来记录A中是否出现了1~n中的正整数,B[0]对应正整数1,B[n-1]对应正整数n,初始化B中所有值为0 + 从A[0]开始遍历A,若00 && A[i]<=n){ + B[A[i]-1] == 1; + } + } + for(i=0;i