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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1月刷题记录

發布時間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1月刷题记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二叉樹

  • NC224 從下到上打印二叉樹(層序遍歷,每一層的結果從后往前放回ans,麻煩的是arraylist轉二維數組)
  • NC195 二叉樹的直徑(后序遍歷,遞歸返回左右子樹中較大的那個再+1,遞歸過程中不斷計算maxpath=Math.max(maxpath,left+right))
  • NC191 二叉搜索樹的最近公共祖先(后序遍歷,遞歸,費解)
  • NC123 序列化二叉樹(前序遍歷,主要是對字符串的操作)
  • NC84 完全二叉樹結點數(可以直接后序遍歷計算,如果要用完全二叉樹的特性就要遞歸計算左右子樹的高度,滿二叉樹計算公式:2 ^ heigh-1,總的結點數 = 根節點 + 滿二叉樹節點個數+ 完全二叉樹節點個數)
  • NC98 判斷t1樹中是否有與t2樹完全相同的子樹(先找到相等的root,再遞歸計算這兩棵子樹是否每個結點都相等)
  • NC223 從中序與后序遍歷序列構造二叉樹(畫圖找下標)
  • NC193 二叉樹的前序遍歷
  • NC192 二叉樹的后序遍歷
  • NC150 二叉樹的個數 (動態規劃。對于每一個根i他都是由左邊子樹(1, 2, …, i - 1)和右邊子樹(i + 1, i + 2, …, n)組成的。因此他的個數肯定是兩個子樹情況的積。最后n個根,加起來)
  • NC162 二叉樹中和為某一值的路徑(三) (先序遍歷,全局變量res)
  • NC248 左葉子之和(dfs,多傳一個isLeft用于記錄走了左邊)
  • NC169 修剪葉子(dfs,發現左/右兒子且它是葉節點就修建,即返回空)
  • 動態規劃

  • NC17 最長回文子串(dp[i][i]定義為A[I]到A[j]是否為回文子串,是1,否0,對于對角線上方的部分,從下到上,從左到右遍歷)
  • 字符串

  • NC141 判斷是否為回文字符串(頭尾配對逐個判斷)
  • NC56 回文數字(int轉字符串Integer.toString(x))
  • 鏈表

  • NC96 判斷一個表是否為回文結構(先找到鏈表的中點,再把鏈表的后半部分進行反轉)
  • NC78 反轉鏈表(遞歸和迭代,熟練掌握)
  • NC21 鏈表內指定區間反轉(在head前面加一個dummynode,截斷left和right進行反轉鏈表再接回去)
  • NC50 鏈表中的節點每k個一組翻轉(遞歸做法,a是頭結點,b是從head開始走k步指向的結點,用一個reverse函數反轉a到b,a后面接上 下一次遞歸的結果,b作為頭結點,最后返回newHead)
  • NC33 合并兩個排序的鏈表(把merge定義為,輸入兩個listnode,返回較小的那個結點,base case是當有一個listnode為空,只能返回另一個listnode。遞歸比較list1和list2指向的值,哪個小就繼續merger下一個結點)
  • NC4 判斷鏈表中是否有環(經典快慢指針)
  • NC66 兩個鏈表的第一個公共結點(交替走,會相遇)
  • leetcode 142. 環形鏈表 II(先用快慢指針找到第一次的相遇點,然后其中一個指針回到head,另一個指針不動兩個指針同速往前走,它們會再次相遇在環形鏈表的入口點)
  • NC51 合并k個已排序的鏈表(利用了小根堆的性質,先把每條鏈表的第一個結點放進小根堆,再逐個彈出,每次彈出結點都把它的下一位放進小根堆中)
  • NC2 重排鏈表 (找到中點,切成兩條鏈表(快慢指針),反轉第二條鏈表,合并兩條鏈表)
  • NC53 刪除鏈表的倒數第n個節點(快慢指針,加dummy結點)
  • NC40 兩個鏈表生成相加鏈表(先反轉鏈表,再相加,注意最高位可能還有一個進位,得到結果后反轉回來)
  • NC70 單鏈表的排序(歸并排序,找到鏈表中點并斷開成兩條鏈表,對左右兩條鏈表繼續遞歸,返回合并兩條有序鏈表的結果)
  • NC25 刪除有序鏈表中重復的元素-I(雙指針)
  • NC186 兩兩交換鏈表的節點(類似NC50)
  • NC207 排序奇升偶降鏈表(分為奇鏈表和偶鏈表,反轉偶鏈表,兩條鏈表歸并)
  • JZ6 從尾到頭打印鏈表(可以先反轉鏈表)
  • NC211 旋轉鏈表()
  • NC24 刪除有序鏈表中重復的元素-II(pre、cur、tmp)
  • NC69 鏈表中倒數最后k個結點(快慢指針)
  • NC133 鏈表的奇偶重排(NC207差不多思路)
  • NC23 劃分鏈表(新建兩個鏈表接收大于x和小于x的結點,最后連起來)
  • NC244 對鏈表進行插入排序(遍歷鏈表,找錯的結點tmp并放回正確位置)
  • DFS

  • NC138 矩陣最長遞增路徑()
  • NC226 被圍繞的區域(最外層的’O’先標記為’A’,能和最外層直接相連的’O’也標記為’A’,之后遍歷整個矩陣,把’O’變為’X’, 把’A’變為’O’)
  • 排序

  • NC140 排序(用了插入排序,遍歷數組,每個數都和前面的數比較,把小的數交換到前面 一直移到合適的位置上去)
  • 數組

  • NC73 數組中出現次數超過一半的數字(先排序,取中間數)
  • NC61 兩數之和(哈希表)
  • NC166 連續子數組的最大和(二)(在原有dp基礎上記錄max,還要記錄當前len,不斷更新maxlen和maxend,最后進行輸出)
  • leetcode 15. 三數之和 (先排序,兩步去重)
  • NC22 合并兩個有序的數組(歸并排序,為了能不額外創建數組,A數組后面有多余空間,所以從后往前進行歸并)
  • NC37 合并區間([a,b][c,d]可以合并的情況有兩種,a<c<b<d,a<c<d<b)
  • NC107 尋找峰值(例外情況有:只輸入一個數 直接返回0,峰值在最左側和最右側)
  • NC77 調整數組順序使奇數位于偶數前面(一)(兩個數組去存再合并)
  • 碎碎念

    1月要過完啦~~本命年終于要過去咯,希望新年順順利利

    總結

    以上是生活随笔為你收集整理的1月刷题记录的全部內容,希望文章能夠幫你解決所遇到的問題。

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