91com在线观看_五级片网站_久99视频_快播91_91免费版看片_www.91视频com

当前位置:高考升学网 > 招聘笔试题 > 正文

金山(Kingsoft)服务器端开发工程师笔试题和面试题答案

更新:2023-09-13 17:08:38 高考升学网

  总体感觉金山的笔试题难度还可以,既考查了基础知识,又测试了考生的编程及算法能力。试题大概分为三部分,第一部分是一些简单的看程序填空,就是填写程序的运行结果。这一部分只要仔细一点就没什么问题。第二部分是简答题,内容包括TCP,UDP协议,C++拷贝构造函数,快速排序算法,堆栈等基础知识,这一部分问题也不大。最后一部分是两道编程题,由于时间很充裕(两个小时)如果能想出算法的话应该很快就做完了。这里与大家分享一道编程题,主要考查算法。

  题目1:有一个int型数组Num,里面存放着若干的正数和负数,请你设计一个算法,在数组中截取一段Num[start]--Num[end],使得这一段的整数之和最大,并返回最大值max。

  算法:start和end记录最大段的起始和终止位置,首先让start指向数组的第一个正数的下标,end指向数组的倒数第一个正数的下标,即略去数组首尾的负数。然后用两个循环求出所有组合的最大值并返回,start记录最大段的起始下标,end记录终止下标。

  以下是我用C语言实现的程序代码,已经在visual C++ 6.0上运行通过了,想加入金山的可以过来围观一下,呵呵。

  #include /在数组Num[]中截取一段Num[start]--Num[end],使得这一段的元素之和最大,打印start和end并返回最大值max/ int findMaxPart(int Num[],int n) { int len=n;//数组的长度 int start=0; int end=len-1; int sum=0; int max=0;//截取数组段的最大值 /略去数组首尾的负数/ while(Num[start]<0) start++; while(Num[end]<0) end--; max=Num[start]; for(int i=0;i { sum=0; for(int j=i;j { sum+=Num[j]; if(max { max=sum; start=i; end=j; } } } /打印start和end以及最大值max/ printf("start position is:%d/n",start); printf("end position is:%d/n",end); printf("The max value is:%d/n",max); return max;//返回max } void main() { int Num[]={2,-1,1,-20,4,9,-30,1,-1,2}; findMaxPart(Num,sizeof(Num)/sizeof(int)); } #include /在数组Num[]中截取一段Num[start]--Num[end],使得这一段的元素之和最大,打印start和end并返回最大值max/ int findMaxPart(int Num[],int n) { int len=n;//数组的长度 int start=0; int end=len-1; int sum=0; int max=0;//截取数组段的最大值 /略去数组首尾的负数/ while(Num[start]<0) start++; while(Num[end]<0) end--; max=Num[start]; for(int i=0;i { sum=0; for(int j=i;j { sum+=Num[j]; if(max { max=sum; start=i; end=j; } } } /打印start和end以及最大值max/ printf("start position is:%d/n",start); printf("end position is:%d/n",end); printf("The max value is:%d/n",max); return max;//返回max } void main() { int Num[]={2,-1,1,-20,4,9,-30,1,-1,2}; findMaxPart(Num,sizeof(Num)/sizeof(int)); }

  问题补充:这种算法的时间复杂度是O(n^2) ,效率太低了,在网友张立志同学的提示下,我用动态规划算法对程序做了优化。时间复杂度是O(n)。代码如下。

  #include int main() { int num[]={5,-1,1,-10,5,-1,5,-20,1,-1,3}; int n=sizeof(num)/sizeof(int); int sum=0; int max=num[0];// record the value of max part int start=0;// the start position of the max part int end=0;// the end position of the max part int temp_start; for(int i=0;i { sum+=num[i]; // update max part if(max { max=sum; end=i; start=temp_start; } // find new max part if(sum<0) { sum=0; temp_start=i+1; } } printf("max=%d/n",max); printf("start=%d/n",start); printf("end=%d/n",end); return 0; } #include int main() { int num[]={5,-1,1,-10,5,-1,5,-20,1,-1,3}; int n=sizeof(num)/sizeof(int); int sum=0; int max=num[0];// record the value of max part int start=0;// the start position of the max part int end=0;// the end position of the max part int temp_start; for(int i=0;i { sum+=num[i]; // update max part if(max { max=sum; end=i; start=temp_start; } // find new max part if(sum<0) { sum=0; temp_start=i+1; } } printf("max=%d/n",max); printf("start=%d/n",start); printf("end=%d/n",end); return 0; }

  阅读了本文“金山(Kingsoft)服务器端开发工程师笔试题”,本站中国人才网(cnrencai)笔试频道,还为你提供更多“笔试题目”相关文章阅读

最新图文

2020年河北新闻网两学一做

时间:2023-09-18 07:0:24

2020年河北新闻网两学一做

时间:2023-09-15 11:0:59

两学一做学习教育知

时间:2023-09-21 06:0:30

2020年开展两学一做学习教

时间:2023-09-19 21:0:30
主站蜘蛛池模板: 亚洲色图 激情小说 | 久久福利国产 | 日韩精品专区av无码 | 国产成视频在线观看 | 好爽...又高潮了毛片 | 久久精品国产四虎 | 99看片| 精品伊人久久久大香线蕉天堂 | 久久精品中文无码资源站 | 色一区二区| 中文字幕一区二区人妻 | 色8激情欧美成人久久综合电影 | 久久夜色撩人精品国产小说 | 亚洲av日韩av一区二区三曲 | 国产伦一区二区三区高清 | 欧美野外疯狂做受xxxx高潮 | 二区视频在线 | 日韩一区二区三区不卡视频 | 成人网站免费观看 | 国产免费全部免费观看 | 播播成人网 | 欧美满足你的丝袜高跟ol | 日韩在线二区全免费 | 国内揄拍国产精品人妻门事件 | 小明永久成人一区二区 | 久久综合琪琪狠狠天天 | 中文字幕在线二区 | 一级特一级特色生活片 | 国产成人综合久久精品尤物 | 69sex久久精品国产麻豆 | 99精品国产成人一区二区在线 | 丰满熟女高潮毛茸茸欧洲视频 | 午夜人妻久久久久久久久 | 精品视频一区二区三区中文字幕 | 亚洲精品伦理熟女国产一区二区 | 亚洲三级网站 | 在线国产二区 | 精品伊人久久大香线蕉综合 | 91精品国产亚洲爽啪在线影院 | 男人天堂最新网址 | 欧美激情在线看 |