欧美在线观看www-欧美在线观看高清一二三区-欧美在线观看网站-欧美在线观看网址-国产高清在线精品免费-国产高清在线精品一区二区

當前位置:高考升學網 > 招聘筆試題 > 正文

金山(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
主站蜘蛛池模板: 粉嫩视频在线观看 | 久久久久国产一级毛片高清板 | 特级毛片女人18毛片 | 国产一区二区三区在线观看影院 | 99国产精品农村一级毛片 | 丁香视频在线 | 性生交大片免费一级 | 九九九九热精品免费视频 | 视频一区二区欧美日韩在线 | 日韩经典在线 | 91免费高清视频 | 青青青视频精品中文字幕 | 免费观看黄页 | 九九热在线观看视频 | 黄色片免费在线看 | 亚洲欧美综合视频 | 日本黄色高清视频网站 | 在线一级片 | 国产在线麻豆精品观看 | 99久久99久久精品免费看子伦 | 久久婷婷丁香七月色综合 | 国产一级二级在线 | 视频成人永久免费下载 | 成年女人午夜毛片免费看 | 国产高清一级在线观看 | 91香蕉国产亚洲一区二区三区 | 国产真实系列在线 | 亚洲国产第一区二区三区 | 国内久久 | 韩国大尺度女教师未删减在线 | 成人性生免费视频 | 国产午夜精品理论片在线 | 天天搞夜夜 | 欧美一级久久久久久久大片 | 国产精品三级国语在线看 | 久久精品国产福利国产琪琪 | 台湾电视剧大全免费观看 | 欧美性福 | 欧美一区二区二区 | 欧美一区在线观看视频 | 99视频精品全部国产盗摄视频 |