【4】

 

/*=====================================================*\ 第6题(数组) 腾讯面试题: 给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每一个数都是先前上排那十个数在下排出现的次数。 上排的十个数以下: 【0,1,2,3,4,5,6,7,8,9】ios

举一个例子, 数值: 0,1,2,3,4,5,6,7,8,9 分配: 6,2,1,0,0,0,1,0,0,0 0在下排出现了6次,1在下排出现了2次, 2在下排出现了1次,3在下排出现了0次.... 以此类推.. \*=====================================================*/面试

#include <iostream>

using namespace std;

void print(int *a,int length){
    for(int i = 0;i < length;++i){
        cout << a[i] << " ";
    }
    cout << endl;
}


int scan(int *a,int *b,int length){
    int key = 0;
    for (int index = 0 ; index < length ; ++index)
    {
        int sum = 0;
        for (int i = 0;i < length;++i)
        {
            if(b[i]==a[index])
                ++sum;            //第二行为对应第一行值的个数
        }
        if (b[index]==sum)        //若是此时至相等
        {
            ++key;
        }else{                    //不等则更新
            b[index] = sum;
        }
    }
    cout<<key<<endl;
    return key;
}


int main(){
    int a[10] = {0,1,2,3,4,5,6};
    int b[10] = {0,0,0,0,0,0,0};
    int length = 7;
    while(scan(a,b,length)!=length);
    print(a,length);
    print(b,length);
    return 0;
}
相关文章
相关标签/搜索