空间换时间小例子(1)

来源:互联网 发布:unity3d 自发光 编辑:程序博客网 时间:2024/05/17 21:47
/*: 
    在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次;找出出现次数最多的数字。

输入 一个1-1000的数N; 表示数组长度

接下来输入N个数

输出出现次数最多的数字

*/

#include <stdio.h>#include <stdlib.h>void search(int a[], int len){    int array[1000] = {0};    int i = 0;    int max = 0;    for(i=0; i<len; i++)    {        int index = a[i] - 1;        array[index]++;    }    for(i=0; i<1000; i++)    {        if( max < array[i] )        {            max = array[i];        }    }    for(i=0; i<1000; i++)    {        if( max == array[i] )        {            printf("%d\n", i+1);        }    }}int main(){    int *p = NULL;    int n;    int i = 0;    scanf("%d\n", &n);    p = (int*)malloc(n*sizeof(int));    for(i = 0; i < n; i++)    {        scanf("%d", &p[i]);    }    search(p, n);    free(p);    return 0;}


原创粉丝点击