基礎題:
1、判斷兩個鍊錶是否相交,若相交,求交點(假設鍊錶不帶環)
思路:
} 2、判斷兩個鍊錶是否相交,若相交,求交點(假設鍊錶可能帶環)
思路:
兩個鍊錶帶環可分為兩種情況:
1. 乙個帶環,乙個不帶環
這種情況是不會有交點的
2. 兩個都帶環
分析:
入口點相同時,分別讓兩個鍊錶從入口點處斷開,則轉換成了兩個不帶環鍊錶求交點的問題;
入口點不同時,從乙個鍊錶的入口點出發,在環上尋找另乙個鍊錶的入口點,若找不到(如左邊的情況),若找到了(如右邊的情況),交點就是環上的一點;
附加題:
請問下面的程式輸出幾個「-」?
思路:#include
#include
#include
int main()
return
0;}
1、這道題只要考察的是fork()函式的使用; 乙個程序呼叫fork()函式後,系統先給新的程序分配資源,例如儲存資料和**的空間。然後把原來的程序的所有值都複製到新的新程序中,只有少數值與原來的程序的值不同。相當於轉殖了乙個自己。
2、這道題還考察了printf()函式的使用,這就跟printf的緩衝機制有關了,printf某些內容時,作業系統僅僅是把該內容放到了stdout的緩衝佇列裡了,並沒有實際的寫到螢幕上。(如果這個題的printf後面加乙個\n是就不一樣了)但是,只要看到有/n 則會立即重新整理stdout,因此就馬上能夠列印了。
上圖是對這個題的**,可以看出此題共建立3個子程序,
答案: 八次(因為多拷貝了兩次,若有\n的話,會輸出六次);
推薦一篇將fork()函式的部落格,個人覺得很不錯
LeetCode每日兩題 day4
leetcode11.盛水最多的容器 leetcode9.回文數 問題詳情 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。實現class solution object defispalindrome self,x type x int rtype bool...
每日一題(4)
思路 先用快慢指標找到鍊錶的中點,然後翻轉鍊錶後半部分,再和前半部分組合。注意 把鍊錶分成兩半時,前半段的尾節點要置為null,翻轉鍊錶時也要把尾節點置為null。definition for singly linked list.struct listnode class solution 此時的...
每日一題 day6
基礎題 1 兩個棧實現乙個佇列 思路 棧的特點 後進先出 佇列的特點 先進先出 兩個棧可將乙個棧用於入資料,另乙個用於出資料 define crt secure no warnings include includetemplate class myqueue void pop 刪除頭部資料 s2....