标签:blog io for div log c 时间 size r
数组a[n-1]里存有1到n的所有数,除了一个数removed,找出这个missing的数。
#include <stdio.h> #include <stdlib.h> //数组a[n-1]里存有1到n的所有数,除了一个数removed,找出这个missing的数。 //容易发生溢出 时间复杂度O(N),空间复杂度O(1) int missing0(int a[],int n) { int sum=(n+1)*n/2; int i; for(i=0;i<n-1;i++){ sum-=a[i]; } return sum; } //时间复杂度O(N) 空间复杂度O(N) int missing1(int a[],int n) { int missing=0; int b[n]; int i; memset(b, 0, sizeof(b)); for(i=0;i<n-1;i++) { b[a[i]-1]=1; } for(i=0;i<n;i++) { if(b[i]==0){ missing=i+1;break; } } return missing; } int main() { int a[8]={1,4,7,9,8,2,3,5}; printf("missing0=%d\n",missing0(a,9)); printf("missing1=%d\n",missing1(a,9)); return 0; }
标签:blog io for div log c 时间 size r
原文地址:http://www.cnblogs.com/forsta/p/3975918.html