文章
266
粉丝
0
获赞
0
访问
28.0k
1)创建一个数组num[N],设该目标数组是A[m],其中N是A中的最大数,m是A的个数。然后让num[A[i++]]++进行计数,期间如果遇到非正数直接跳过,将A遍历完一遍之后,对num进行一次遍历,如果遇到num[j]==0,则所求最小未出现正整数是j。
2): int find_minabsent(int A[],int m,int N){
int num[N+1]={0};//创建一个数组num用来利用A[i]值进行计数
for(int i=0;i<m;i++){
if(A[i]<=0) continue;
num[A[i]]++;
}
for(int j=1;j<=N;j++){
if(num[j]==0)return j;//如果某一项等于0则直接返回j
}
return N+1;//到这里说明全都有,直接返回N+1即可。
}
3)时间复杂度是o(n),空间复杂度是o(n); &nbs...
登录后发布评论
暂无评论,来抢沙发