国产女人18毛片水真多18精品, 一区二区三区中文字-亚洲精品女国产, 欧美熟妇老熟妇88888久久久久, 一级毛片免费观看亚洲欧美国产精品,大波霸美女视频,日韩欧美激情V影院,熟女人伦21p,亚洲精品女国产,国产 乱子伦 在线

除夕的傳說作文

時(shí)間:2025-10-05 20:32:38 小學(xué)生作文 我要投稿

2017年除夕的傳說作文

  先總體說下題型,共有20道選擇題,4道簡答題,3道編程題和1道擴(kuò)展題,題目都比較簡單,限時(shí)一小時(shí)完成。

2017年除夕的傳說作文

  一、選擇題

  選擇題非常簡單,都是基礎(chǔ)題,什么死鎖發(fā)生的條件、HashMap和HashSet查找插入刪除的時(shí)間復(fù)雜度、Thread類和Runnable接口、排序復(fù)雜度比較、建堆調(diào)整堆等等,具體的也記不得了。

  二、簡答題

  1. 簡述Servlet的生命周期

  2. 寫出至少8個(gè)Java常用的包名稱

  3. Overload和Override的區(qū)別,Overloaded方法能不能修改返回值類型?

  4. 不用中間變量交換a和b的值

  三、編程題

  1. 有N個(gè)人圍一圈依次報(bào)數(shù),數(shù)到3的人出列,問當(dāng)只剩一個(gè)人時(shí)他原來的位子在哪里?

  2. 有兩個(gè)已遞增有序的單鏈表pLinkList和qLinkList,將這兩個(gè)鏈表合并成一個(gè)遞增有序的鏈表,請自己定義單鏈表的結(jié)構(gòu)。

  3. 具體題目不記得,大概意思就是:從N個(gè)數(shù)中隨機(jī)抽取出M個(gè)數(shù)(M < N),為了使抽取比較均勻,請自己定義抽取函數(shù)使得抽取的數(shù)既均勻又盡量隨機(jī)。

  四、擴(kuò)展題

  具體題目也記不清了,一大堆,大概意思是:有一個(gè)海量日志庫,里面的每條日志記錄都有相應(yīng)的關(guān)鍵詞和訪問次數(shù),但記錄是無序的,為了挖掘客戶偏好,需要找出前N個(gè)最高訪問次數(shù)的日志記錄,請?jiān)O(shè)計(jì)算法盡量使時(shí)間復(fù)雜度和空間復(fù)雜度最低。

  下面是我自己寫的答案,不一定正確,歡迎大家批評指定和提出自己更好的想法和意見:

  二、簡答題1. 簡述Servlet的生命周期

  答:Web容器加載servlet,生命周期開始,通過調(diào)用servlet的的init()方法進(jìn)行servlet的初始化,通過調(diào)用service()方法實(shí)現(xiàn),根據(jù)請求的不同調(diào)用不同的doGet()和doPost()方法,結(jié)束服務(wù),web容器調(diào)用servlet的destroy()方法。

  一個(gè)servlet的生命周期由部署servlet的容器控制,當(dāng)一個(gè)請求映射到一個(gè)servlet時(shí),容器執(zhí)行下步驟:

  1.加載servlet類

  2.創(chuàng)建一個(gè)servlet類的實(shí)例

  3.調(diào)用init初始化servlet實(shí)例,

  4.調(diào)用service方法,傳遞一個(gè)請求和響應(yīng)對象

  5.容器要移除一個(gè)servlet,調(diào)用servlet的destroy方法結(jié)束該servlet

  2. 寫出至少8個(gè)Java常用的包名稱

  答:答出以下的任意8個(gè)就行了

  1. java.lang Java 編程語言的基本類庫

  2. java.applet 創(chuàng)建 applet 需要的所有類

  3. java.awt 創(chuàng)建用戶界面以及繪制和管理圖形、圖像的類

  4. java.io 通過數(shù)據(jù)流、對象序列以及文件系統(tǒng)實(shí)現(xiàn)的系統(tǒng)輸入、輸出

  5. java.net 用于實(shí)現(xiàn)網(wǎng)絡(luò)通訊應(yīng)用的所有類

  6. java.util 集合類、時(shí)間處理模式、日期時(shí)間工具等各類常用工具包

  7. java.sql 訪問和處理來自于 Java 標(biāo)準(zhǔn)數(shù)據(jù)源數(shù)據(jù)的類

  8. java.test 以一種獨(dú)立于自然語言的方式處理文本、日期、數(shù)字和消息的類和接口

  9. java.security 設(shè)計(jì)網(wǎng)絡(luò)安全方案需要的一些類

  10. java.beans 開發(fā) Java Beans 需要的所有類

  11. java.math 簡明的整數(shù)算術(shù)以及十進(jìn)制算術(shù)的基本函數(shù)

  12. java.rmi 與遠(yuǎn)程方法調(diào)用相關(guān)的所有類

  3. Overload和Override的區(qū)別,Overloaded方法是否可以改變返回值類型?

  答:Overload是重載的意思,Override是覆蓋的意思,也就是重寫。

  (1)重載Overload表示同一個(gè)類中可以有多個(gè)名稱相同的方法,但這些方法的參數(shù)列表各不相同(即參數(shù)個(gè)數(shù)或類型不同),重載發(fā)生在同一個(gè)類中。

  (2)重寫Override表示子類中的方法可以與父類中的某個(gè)方法的名稱和參數(shù)完全相同,通過子類創(chuàng)建的實(shí)例對象調(diào)用這個(gè)方法時(shí),將調(diào)用子類中的定義方法,這相當(dāng)于把父類中定義的那個(gè)完全相同的方法給覆蓋了,這也是面向?qū)ο缶幊痰亩鄳B(tài)性的一種表現(xiàn)。子類覆蓋父類的方法時(shí),只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因?yàn)樽宇惪梢越鉀Q父類的一些問題,不能比父類有更多的問題。子類方法的訪問權(quán)限只能比父類的更大,不能更小。如果父類的方法是private類型,那么,子類則不存在覆蓋的限制,相當(dāng)于子類中增加了一個(gè)全新的方法。重寫發(fā)生在不同的類(父類和子類)中。

  (3)至于Overloaded的方法是否可以改變返回值的類型這個(gè)問題,要看你倒底想問什么呢?這個(gè)題目很模糊。如果幾個(gè)Overloaded的方法的參數(shù)列表不一樣,它們的返回者類型當(dāng)然也可以不一樣。但我估計(jì)你想問的問題是:如果兩個(gè)方法的參數(shù)列表完全一樣,是否可以讓它們的返回值不同來實(shí)現(xiàn)重載Overload。這是不行的,我們可以用反證法來說明這個(gè)問題,因?yàn)槲覀冇袝r(shí)候調(diào)用一個(gè)方法時(shí)也可以不定義返回結(jié)果變量,即不要關(guān)心其返回結(jié)果,例如,我們調(diào)用map.remove(key)方法時(shí),雖然remove方法有返回值,但是我們通常都不會定義接收返回結(jié)果的變量,這時(shí)候假設(shè)該類中有兩個(gè)名稱和參數(shù)列表完全相同的方法,僅僅是返回類型不同,java就無法確定編程者倒底是想調(diào)用哪個(gè)方法了,因?yàn)樗鼰o法通過返回結(jié)果類型來判斷。

  4. 不用中間變量交換a和b的值

  答:很多種方法,我這里給出最簡單的:

  a = a + b;

  b = a - b;

  a = a - b;

  三、編程題1. 有N個(gè)人圍一圈依次報(bào)數(shù),數(shù)到3的倍數(shù)的人出列,問當(dāng)只剩一個(gè)人時(shí)他原來的位子在哪里?

  解答:經(jīng)典的轉(zhuǎn)圈踢人問題,好吧專業(yè)一點(diǎn),約瑟夫環(huán)問題,相信大家都會,下面給我的code:

  int main()

  {

  int N, i, j;

  printf("Please enter the number of people(N): ");

  scanf("%d", &N);

  int *pArray = (int *)malloc(sizeof(int) * N);

  int count = 0;

  /pic/p>

  for(i = 0; i < N; i++)

  {

  pArray[i] = i;

  }

  for(i = 0, j = 0; i < N; i = (i + 1) % N)

  {

  if(pArray[i] != -1)

  {

  j++;

  if(j % 3 == 0)

  {

  pArray[i] = -1;

  count++;

  if(count == N)

  {

  printf("The last people is %d\n", i);

  break;

  }

  }

  }

  }

  return 0;

  }

  好吧,我承認(rèn)我的算法很臃腫,完全是模擬了整個(gè)游戲過程,時(shí)間復(fù)雜度為O(mn),這里m=3,網(wǎng)上有個(gè)大牛給出了歸納數(shù)學(xué)的方法,具體方法如下:

  為了討論方便,先把問題稍微改變一下,并不影響原意:

  問題描述:n個(gè)人(編號0~(n-1)),從0開始報(bào)數(shù),報(bào)到(m-1)(這里m=3)的退出,剩下的人繼續(xù)從0開始報(bào)數(shù),求最后剩下一個(gè)人的編號。

  我們知道第一個(gè)人(編號一定是m%n-1) 出列之后,剩下的n-1個(gè)人組成了一個(gè)新的約瑟夫環(huán)(以編號為k=m%n的人開始):

  k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2并且從k開始報(bào)0。

  現(xiàn)在我們把他們的編號做一下轉(zhuǎn)換:

  k --> 0

  k+1 --> 1

  k+2 --> 2

  ...

  ...

  k-2 --> n-2

  k-1 --> n-1

  變換后就完完全全成為了(n-1)個(gè)人報(bào)數(shù)的子問題,假如我們知道這個(gè)子問題的解:例如x是最終的勝利者,那么根據(jù)上面這個(gè)表把這個(gè)x變回去不剛好就是n個(gè)人情況的解嗎?!!變回去的公式很簡單,相信大家都可以推出來:x'=(x+k)%n

  如何知道(n-1)個(gè)人報(bào)數(shù)的問題的解?對,只要知道(n-2)個(gè)人的解就行了。(n-2)個(gè)人的解呢?當(dāng)然是先求(n-3)的情況 ---- 這顯然就是一個(gè)倒推問題!好了,思路出來了,下面寫遞推公式:

  令f[i]表示i個(gè)人玩游戲報(bào)m退出最后勝利者的編號,最后的結(jié)果自然是f[n]

  遞推公式

  f[1]=0;

  f[i]=(f[i-1]+m)%i; (i>1)

  有了這個(gè)公式,我們要做的就是從1-n順序算出f[i]的數(shù)值,最后結(jié)果是f[n]。因?yàn)閷?shí)際生活中編號總是從1開始,我們輸出f[n]+1

  由于是逐級遞推,不需要保存每個(gè)f[i],程序也是異常簡單:

  #include

  #include

  int main()

  {

  int N, i, s = 0;

  printf("Please enter the number of people(N): ");

  scanf("%d", &N);

  for (i = 2; i <= N; i++)

  {

  s = (s + 3) % i;

  }

  printf ("The last people is %d\n", s);

  return 0;

  }

  這個(gè)算法的時(shí)間復(fù)雜度為O(n),相對于模擬算法已經(jīng)有了很大的提高。算n,m等于一百萬,一千萬的情況不是問題了?梢姡m當(dāng)?shù)剡\(yùn)用數(shù)學(xué)策略,不僅可以讓編程變得簡單,而且往往會成倍地提高算法執(zhí)行效率。數(shù)學(xué)確實(shí)很重要啊!!!

  2. 有兩個(gè)已遞增有序的單鏈表pLinkList和qLinkList,將這兩個(gè)鏈表合并成一個(gè)遞增有序的鏈表,請自己定義單鏈表的結(jié)構(gòu)。

  解答:同樣很經(jīng)典,不用多說,直接上我自己的code(不是最好的):

  #include

  using namespace std;

  struct LinkList {

  int data;

  LinkList *next;

  };

  LinkList* createList() {

  LinkList *head = NULL, *p, *q;

  int data;

  cin >> data;

  while(data) {

  p = new LinkList;

  p->data = data;

  p->next = NULL;

  if(head == NULL) {

  head = p;

  q = head;

  }

  else {

  q->next = p;

  q = p;

  }

  cin >> data;

  }

  return head;

  }

  /pic/p>

  void merge(LinkList *&pLinkList, LinkList *qLinkList) {

  LinkList *pre, *p, *q;

  pre = NULL;

  p = pLinkList;

  q = qLinkList;

  while(p != NULL && q != NULL) {

  if(p->data < q->data)

  {

  pre = p;

  p = p->next;

  }

  else

  {

  /pic/p>

  if(pre == NULL)

  {

  pLinkList = q;

  }

  else

  {

  pre->next = q;

  }

  pre = q;

  q=q->next;

  pre->next = p;

  }

  }

  /pic/p>

  if(q != NULL)

  {

  pre->next = q;

  }

  }

  void print(LinkList *l) {

  LinkList *p = l;

  while(p != NULL) {

  if(p->next == NULL) {

  cout << p->data;

  break;

  }

  cout << p->data << " -> ";

  p = p->next;

  }

  cout << endl;

  }

  int main() {

  cout << "Please enter pLinkList: ";

  LinkList *pLinkList = createList();

  print(pLinkList);

  cout << "\nPlease enter pLinkList: ";

  LinkList *qLinkList = createList();

  print(qLinkList);

  merge(pLinkList, qLinkList);

  cout << "\nThe merge LinkList is: \n";

  print(pLinkList);

  return 0;

  }

  3. 具體題目不記得,大概意思就是:從N個(gè)數(shù)中隨機(jī)抽取出M個(gè)數(shù)(M < N),為了使抽取比較均勻,請自己定義抽取函數(shù)使得抽取的數(shù)既均勻又盡量隨機(jī)。

  解答:當(dāng)時(shí)時(shí)間太急了,沒來得及多想,做法很傻:從1 ~ M*N中隨機(jī)抽取一個(gè)數(shù)字,然后mod (N + 1),求得的值為N個(gè)數(shù)中的下標(biāo),再根據(jù)此下標(biāo)去N個(gè)數(shù)中取,重復(fù)M次即可。假如這N個(gè)數(shù)存在數(shù)組nArray[]中,抽取的M個(gè)數(shù)存在數(shù)組mArray[]中,偽代碼描述如下:

  for(int i = 0; i < M; i++)

  {

  int index = Random(M * N) % N;

  mArray[i] = nArray[index];

  }由于覺得這個(gè)算法實(shí)在是不好,就懶得測試了,大家有好想法的趕緊提出來吧。

  四、擴(kuò)展題具體題目也記不清了,一大堆描述,大概意思是:有一個(gè)海量日志庫,里面的每條日志記錄都有相應(yīng)的關(guān)鍵詞和訪問次數(shù),但記錄是無序的,為了挖掘客戶偏好,需要找出前N個(gè)最高訪問次數(shù)的日志記錄,請?jiān)O(shè)計(jì)算法盡量使時(shí)間復(fù)雜度和空間復(fù)雜度最低。

  解答:典型的Top K問題,我用的算法也是大家都知道的,大致描述下思路:假如關(guān)鍵詞和訪問次數(shù)成一個(gè)記錄結(jié)構(gòu)體,維護(hù)一個(gè)有N個(gè)該結(jié)構(gòu)體的小根堆,初始化為N個(gè)日志記錄的關(guān)鍵詞和訪問次數(shù)(建堆算法),每次有新的記錄時(shí),將該記錄的訪問次數(shù)與小根堆的堆頂元素進(jìn)行比較,如果大于堆頂元素則與堆頂元素交換記錄,然后調(diào)整堆結(jié)構(gòu)使其重新為一個(gè)小根堆,否則置之不理。當(dāng)所有記錄遍歷完后,所有的堆元素就是所要求的前N個(gè)最高訪問次數(shù)的日志記錄。時(shí)間復(fù)雜度為O(MlgN),不知道自己分析的對不對,完全是自以為是的想法,如果大家有更好的算法歡迎提出!

【除夕的傳說作文】相關(guān)文章:

除夕的傳說作文(精選39篇)02-01

美麗的傳說05-01

月亮的傳說作文-月亮作文01-25

七夕的傳說作文02-22

美麗的傳說作文400字03-29

元宵節(jié)的傳說作文04-24

中秋節(jié)傳說作文03-17

龍的傳說的作文300字09-01

“年”的傳說故事11-19

家鄉(xiāng)的傳說作文(精選12篇)12-14

  • 相關(guān)推薦