3.30螞蟻筆試

SunShine789發表於2024-03-31
  1. SQL題還是不太熟牛客平臺,不允許把在select語句中定義的as別名直接在select語句中用
  2. 怎樣製作臨時表,with的用法
  3. date——format 和date-add不太熟
  4. 有返回值的都應該返回,否則不能透過編譯
  5. 求素數 i*i的邊界條件應該=x
  6. 高精度加法

    1.要注意陣列永遠讓打的+小的陣列 2.如果最後還有一個進位1要加上去!

  7. 雙指標——判斷子序列

    1.判斷i<n,否則a陣列有可能越界 到0那去

  8. 雙指標 記得那個二維的表格,所以就有動態規劃的依據

    1、有些遺忘

  9. 最長不重複子串

    1、直接在原始字串上開窗!

  10. 離散化 是為了更好的應用字首和

  11. 合併區間

    1、除了那些該記住的還有:它對每個區間就兩種可能!要麼重合,要麼分隔,分隔的加入進去就行了。第一個迎頭的區間肯定不可能一下子就加入,而要觀察一輪

  12. 求第k小的數快排思想 為什麼區間長度是j-l+1?

  13. 判斷異或的最大值,tire樹!如何將數字用tire樹表示
  14. 聯通塊注意輸入的要是在一個集和內就不用改變了 continue
  15. 模擬堆 為什麼從n/2 往上 到i --i排序,因為越靠近樹的根,節點的值越小,down操作要和左右節點比較!所以底下不能是空空如也!

    刪除堆頂,因為刪除一維陣列的第一個元素很麻煩,但是尾元素卻很簡單,因此選擇用尾元素覆蓋堆頂,然後刪除尾元素,再down下沉 堆頂元素是1,隊尾元素是size up和down的一直是下標

  16. dfs 的資料結構是棧 路徑儲存是path 雖然看著像一棵樹,但是我們存的時候只會存一條路徑,我們回溯的時候就沒了。不需要額外開空間
  17. 圖的深度搜尋為什麼不需要回溯,因為只遍歷一遍,不需要多次 !最重要的是樹的dfs是帶值的,那麼一定要知道這個值是什麼含義!

    以u為根的子樹,所擁有的節點的數量!那麼 sum就是這個數量! sum的初始值為1,因為還要加上它本身! res是u它的子樹中最大的那個所擁有的節點數目!

  18. 有效括號,回溯!回溯就是求所有符合要求的方案!

    如何限定!加一個判斷就可以

  19. dfs想象你正在走一個迷宮,如何才能不陷入迴圈,標記那些已經走過的路,如何能退出,用一根繩子記錄你走過的路,然後把你倒退著走出來

  20. BFS想象你往湖裡投了一枚石子,波紋散開 VISITED的陣列如此重要,防止我們陷入一遍又一遍的迴圈 可達性就是看看從原點出發是否vis特的

  21. 基本架構一個for迴圈,遍歷單點的所有鄰邊,如果這個點沒有被遍歷過dfs這個點

    如果遍歷過continue!

  22. 拓撲排序dfs版! 對每一個節點做到dfs遍歷!

  23. dfs判斷是不是有環

  24. 組合數字2 誰說不需要回溯!不回溯怎麼恢復狀態繼續往前搜,圖因為只遍歷一次才不用。遍歷和生成!

相關文章