首页 > 代码库 > 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笔试题(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。