原创 從圖嵌入視覺看子空間學習

1.流形學習 以下介紹三種常見的流形學習方法,他們的共同點在於: 1)都把數據最本質的結構信息編碼在一個圖的權值矩陣中; 2)優化問題的求解都可以轉化爲相似的特徵值分解問題。 1.1 局部線性嵌入(LLE) LLE的基本思想:數據點可能分

原创 劍指offer 23. 鏈表中環的入口

1.問題描述 給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null。 2.解決思路 2.1 思路1 1)先判斷鏈表是否有環; 2)如果有環,假設環裏面有n個結點,除去環之外有m個結點,使用快慢指針fast和slow,開

原创 劍指offer 25. 合併兩個排序的鏈表

1.問題描述 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 2.解決思路 1)非遞歸的方法     如果可以改變鏈表,直接從頭結點開始依次移動比較兩個鏈表當前值的大小,把較小的值作爲當前結點

原创 劍指offer 52. 兩個鏈表的第一個公共結點

1.問題描述 輸入兩個鏈表,找出它們的第一個公共結點。 說明:應該是兩個單向鏈表,成Y字型,不會成X型,也不會成環。 2.解決思路 鏈表只能從表頭單向訪問,可以利用棧的後進先出特性來實現,把兩個鏈表壓入棧再彈出來,但是那樣需要兩個輔助棧,

原创 鏈表節點的增加和刪除

鏈表是一種動態的數據結構,因爲在創建鏈表時,不需要知道鏈表的長度,只需要對指針進行操作。 1. 鏈表的定義 struct ListNode{ int val; ListNode* next; ListNode(int x) : v

原创 劍指offer 附加1. 刪除鏈表中的重複結點

1.問題描述 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5. 2.解決思路 1)鏈表爲空,無重複; 2)鏈表只

原创 劍指offer 22. 鏈表中倒數第k個結點

1.問題描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 2.解決思路 由於鏈表只能從頭結點開始遍歷,所以我們需要知道鏈表總共有多少個結點,需要遍歷一次知道長度n; 1)使用一個指針,遍歷鏈表兩次:     第一次:遍歷一次得到鏈表的長度

原创 劍指offer 24. 反轉鏈表

1.問題描述 輸入一個鏈表的頭結點,反轉鏈表後,輸出新鏈表的表頭。 2. 解決思路   1)鏈表是空的:直接返回空的頭結點;   2)鏈表中只有一個結點:直接返回原頭結點;   3)鏈表中有大於2個以上的結點:需要三個指針來輔助