原创 劍指offer---孩子們的遊戲(圓圈中最後剩下的數)(Java)

題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友

原创 劍指offer---二叉搜索樹的後序遍歷序列(Java)

題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 解析思路 我們注意題目說的是二叉搜索樹哈,我一開始以爲就是二叉樹,弄錯好久。

原创 Python腳本-湖師大圖書館自動搶座

因爲最近經常跑圖書館,然後要很早預約就預約不到,所以心生一計,寫個Python腳本,因爲以前從來沒有寫過,所以這次也遇到很多困難,但是最後做出來了! 1.微信關注湖南師範大學圖書館服務號,進入微服務大廳。 2.座位預約——按圖

原创 劍指offer---從上到下打印二叉樹(Java)

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 思路解析 運行代碼 public class Solution { public ArrayList<Integer> PrintFromTopToBot

原创 計算機系統之優化程序性能

計算機系統之深入分析優化程序性能 1.優化編譯器的能力和侷限性 2.表示程序性能 3.程序示例 4.優化—消除循環的低效率 5.優化—減少過程調用 6.優化—消除不必要的內存引用 7.總結 1.優化編譯器的能力和侷限性 大多數

原创 劍指offer---和爲S的連續整數序列(Java)

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和爲100(至少包括兩個數)。沒多久,他就得到另一組連續正數和爲100

原创 計算機系統之可重定位目標文件

1.程序編譯過程 在平時,源文件到目標文件是如下圖轉換,我們今天來着重分析hello.o,也就是標題的重定位目標文件。 2.目標文件的分類 目標文件有三種形式。 可重定位目標文件,包含二進制代碼和數據,在編譯時可以與其他可重定

原创 劍指offer---醜數(Java)

題目描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 思路解析 運行代碼 import

原创 【動圖講解】計算機網絡之回退N步與選擇重傳

1.流水線可靠數據傳輸協議 rdt3.0(reliable data transfer)實現了正確的功能,但是他的性能並不出色,這是因爲他是一個停等協議。發送方在接收到接收方傳回來的ACK前已經一直沒有事做了。 等待時間過長,這會

原创 劍指offer---字符流中第一個不重複的字符(Java)

題目描述 請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。 輸出描

原创 劍指offer---兩個鏈表的第一個公共結點(Java)

題目描述 輸入兩個鏈表,找出它們的第一個公共結點。 解析思路 如果有公共結點,則應該公共結點後面的點都是一樣的。 所以我們可以倒過來看,遇到的最後一個相同的結點即是正數第一個相同結點。 利用棧先進後出的特點,設兩個棧用來儲存兩個鏈

原创 劍指offer---左旋轉字符串(Java)

題目描述 彙編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對於一個給定的字符序列S,請你把其循環左移K位後的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環左

原创 劍指offer---平衡二叉樹(Java)

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 解析思路 上一篇劍指的題目是求二叉樹深度,而這一題就是求左右子樹的高度差絕對值是否大於1。 所以我們在上一篇的基礎上加入了一個Math.abs()後判斷是否大於1就ok了

原创 劍指offer---不用加減乘除做加法(Java)

題目描述 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 解析思路 我們先回顧一下異或 ^ 運算和&與運算。 異或^:不同的數異或爲1,相同的數異或爲0。 與&:兩者都爲1,結果爲1,其他都爲0。

原创 劍指offer---求1+2+3+...+n(Java)

題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 解析思路 這題牛客評論區的大佬解的太厲害了。 利用 && 運算符,當前半部分爲假