首页 > 代码库 > C笔试题(二)

C笔试题(二)

/*现在有一个数组 我们可以定义数组的子数组如 数组 1 3 4 2 5 8 7 它的子数组可以是  1 3 4      3 4 2 5 等等请写一个算法  找一个子数组  这个子数组递增不减少 并且是满足递增不减的最长子数组*/ #include <iostream>#include <cstdlib> #include <ctime>using namespace std;template<typename T>void init(T array[], int len){    srand((unsigned int)(time(NULL)));        for(int i=0; i<len; i++)    {        array[i] = rand() % 10 - 5;         }}template<typename T>void print_array(T array[], int len){    for(int i=0; i<len; i++)    {        cout<<array[i]<<" ";    }        cout<<endl;}template<typename T>void find_sub_array(T array[], int len){    int ret = (len > 1);        if( ret )    {        int sum = 1;        int cur = 1;        int index = 0;        int ci = 0;        T ele = array[0];                for(int i=1; i<len; i++)        {            if( ele <= array[i] )            {                cur++;            }            else            {                cur = 1;                ci = i;            }                        if( cur > sum )            {                sum = cur;                index = ci;            }                        ele = array[i];        }                print_array(array + index, sum);    }}int main(){    int array[10] = {0};    int max_sum = 0;        init(array, 10);        print_array(array, 10);        find_sub_array(array, 10);        return 0;}

 

C笔试题(二)