題目:設a、b是兩個單鏈表(帶頭結點),其中元素遞增有序,設計乙個演算法從a、b中的公共元素產生單鏈表c,要求不破壞a、b節點
分析:要求不破壞a、b節點,故我們需要重新建立分配節點空間,來進行連線。為尋找公共元素,每遍歷a中的乙個元素,都去
與b中元素一一比較,同則取值給另一空間節點,連線到c上。時間複雜度為o(n^2)。
因為這兩個鍊錶是遞增有序的,那麼我們可以設定兩個指標同步比較,相同則加入c,不同小的那個往後移,直至到鍊錶末尾
這樣的時間複雜度為o(n).
**:
struct link ;
#include #include void linkcommon(link *a, link *b, link *c )
lb = lb->next;
} la = la->next;
lb = b->next;
}
C 取兩個陣列的相同元素
以往我們都是肯定絞盡腦汁,肯定什麼迴圈,元素大小,什麼因素都考慮進去。但是現在採用linq可以很好的解決這個問題。找出兩個或多個陣列的相同項。相當簡單 using system using system.collections.generic using system.linq using syst...
20200711 取鍊錶中間的元素
在xbox程式中有乙個redeem a code,意思為 輸入啟用碼 1 找到單向鍊錶中間那個元素,如果有兩個,則取前面的乙個。思路 掃瞄一遍得出長度,取出中間位置。typedef struct node node p為指向單鏈表的第乙個節點 node findmiddleelement node ...
關於對陣列的操作(去重,取不同元素,取相同元素)
我們在專案實踐的過程中經常遇到的問題或者面試的時候經常被問到的問題就是對陣列的操作,老生常談的問題有 去重 取不同 取相同,本文主要記錄這些常用的操作的簡單 高效的實現方法。去重方法1 物件方法 es5 var arr 1,2,3,4,a b c 2,3,c var obj var newarr a...