日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

腾讯2016春招之算法编程解析

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯2016春招之算法编程解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一道題:求有刪除情況的最長回文子串

題目:

?解題思路:

這個題嚴格意義上來說,刪除了字符就談不上回文串了,既然有刪除,那估計考察的不是回文串,而是其他的,但是這個東西又有回文串的特點,細想一下——那就是不連續的回文串,想到不連續,就容易使人想到最長公共子序列,把源字符串逆序之后對比兩個字符串發現:我靠,這不就是求兩個序列的最長公共子序列(好像跟回文串沒多大關系)。

考察:回文串,動態規劃,知識遷移

1 #define M 100 2 int dpLCS[M][M]; //設置成全局變量,自動初始化為0 3 4 //動態規劃法:最長回文子串,有刪除,其實就是求最長公共子序列 5 int LongestCommonSequence(string str) 6 { 7 size_t n = str.size(); 8 if (n == 0 || n == 1) 9 return 1; 10 11 string s = str; 12 reverse(s.begin(), s.end()); 13 14 for (size_t i = 1; i <= n; ++ i) { 15 for (size_t j = 1; j <= n; ++ j) { 16 if (str[i-1] == s[j-1]) 17 dpLCS[i][j] = dpLCS[i-1][j-1] + 1; 18 else 19 dpLCS[i][j] = max(dpLCS[i-1][j], dpLCS[i][j-1]); 20 } 21 } 22 return dpLCS[n][n]; 23 }


第二個題:蛇形矩陣,又叫螺旋矩陣

題目:

?解題思路:

解螺旋矩陣的切入點需要知道矩陣的個數,看下面一幅圖:

如果是n = odd,則中間只有一個數,不算做一個矩陣,如果n = even,則中間是一個矩陣,總的矩陣個數為n/2,知道這一點,后面的工作就是分別從外向里遍歷每一個矩陣即可。

1 void HelixMatrix(int n) 2 { 3 int **a = new int *[n]; 4 for (int i = 0; i < n; i ++) 5 a[i] = new int[n]; 6 7 int m = 0; 8 for (int k = 0; k < n/2; ++ k) { //n/2矩陣個數 9 for (int i = 0; i <= n-1-k; ++ i) 10 a[k][i] = m++; //第一區塊 11 for (int i = k + 1; i < n-1-k; ++ i) 12 a[i][n-1-k] = m++; //第二區塊 13 for (int i = n-1-k; i > k; -- i) 14 a[n-1-k][i] = m++; //第三區塊 15 for (int i = n-1-k; i > k; -- i) 16 a[i][k] = m ++; //第四區塊 17 if (n%2 == 1) 18 a[n/2][n/2] = m; //n=odd,填充中間一個數 19 } 20 for (int i = 0; i < n; i ++) { 21 for (int j = 0; j < n; j ++) 22 cout << a[i][j] << " "; 23 cout << endl; 24 } 25 //釋放a 26 for(int i = 0; i < n; i ++) { 27 delete [] a[i]; 28 } 29 delete []a; 30 }


附:選擇題部分整理

1、HTTP協議的請求類型,端口號,返回碼等

2、在同一臺機器上,內存訪問,SATA硬盤隨機訪問時間分別是:(幾十納秒,幾十毫秒)

3、E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)}的深度優先遍歷序列

4、關于操作系統的說法正確的是:

  a、同一個線程內可以運行多個消息隊列

  b、Windows中使用臨界區,不需要切換到內核態

  c、互斥量可以用于多進程間對資源的安全共享

  d、信號量允許多個線程同時使用共享資源

5、頁面采用click事件會存在300ms延時的原因

6、用0-9,a-z表示36進制的873085

7、冒泡排序,堆排序,歸并排序,快速排序的時間復雜度

8、http的返回碼101,404,502,200的含義

9、面向對象程序設計SOLID五大原則,各字母的含義

10、有關網絡協議說法正確的是:
  A.UDP是無連接不可靠的,TCP是連接可靠的

  B.HTTP請求的類型有get, post, put, delete,head

  C.HTTP默認端口號為80,HTTPS默認端口號為443,FTP默認端口號為21

  D.根據HTTP規范,GET請求用于信息獲取,并且應該是安全的和冪等的

11、兩服務器相距1500km,一次ping請求耗時多長(4,8,16,32)

12、文件系統管理的最小磁盤空間單位(扇區,簇)

13、在移動端瀏覽器,頁面采用click事件,會存在300ms的延遲,為什么?(要預先處理一些操作,還有判斷是否是雙擊操作)

14、A和B玩紐扣游戲,一共16個紐扣,兩人輪流來取,每人每次可以選取1個或3個或6個(不允許不取),規定誰取完最后的紐扣誰贏。如果讓A先取,則A的必勝策略下第一步應該取?

總結

以上是生活随笔為你收集整理的腾讯2016春招之算法编程解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。