原创 劍指Offer(java語言)--序列化二叉樹(樹)

題目: 請實現兩個函數,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指:把一棵二叉樹按照某種遍歷方式的結果以某種格式保存爲字符串,從而使得內存中建立起來的二叉樹可以持久保存。序列化可以基於先序、中序、後序、層序的二叉樹遍歷方式來進行修

原创 劍指Offer(java語言)--把二叉樹打印成多行(樹)

題目: 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 知識點: 二叉樹,隊列的應用。 思路: 例如:輸出結果是[[8],[6,10],[5,7,9,11]] 將每層的結點存入隊列中,爲下一層結點的訪問做準備,下一層節點

原创 劍指Offer(java語言)--二叉樹的下一個節點(樹)

題目: 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 知識點: 二叉樹的中序遍歷:左、根、右。 二叉樹的前序遍歷:根、左、右。 二叉樹的後序遍歷:左

原创 牛客網--刪除鏈表中重複的節點(鏈表)

題目: 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5 知識點: 鏈表 思路: 1. 首先添加一個頭節點,防止碰

原创 牛客網--構建乘積數組(數組)

題目: 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:規定B[0] = A

原创 劍指Offer(java語言)--按之字形順序打印二叉樹(樹)

題目: 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 知識點: 二叉樹 思路: 例如:,輸出結果是[[8],[10,6],[5,7,9,1

原创 劍指Offer(java語言)--對稱的二叉樹(樹)

題目: 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 知識點: 遞歸。 思路: 1、若果根節點爲null,返回true。 2、遍歷根節點的左節點和有節點: 1)左節點爲nu

原创 牛客網--正則表達式匹配(字符串)

題目: 請實現一個函數用來匹配包括'.'和'*'的正則表達式。模式中的字符'.'表示任意一個字符,而'*'表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a.a"

原创 在AndroidStudio中將項目提交、修改到github的步驟

Android Studio中自帶git提交功能。 準備: 1、安裝git版本控制系統 2、在github上創建賬號 3、在AndroidStudio中創建一個新的項目 步驟: 一、提交項目 1、AndroidStudio中配置git:F

原创 Android Studio同步項目發生Error:Execution failed for task ':app:mockableAndroidJar'.

具體錯誤: Error:Execution failed for task ':app:mockableAndroidJar'. > java.util.zip.ZipException: invalid entry compressed

原创 牛客網--孩子們的遊戲,圓圈中最後剩下的數(抽象建模能力)

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

原创 劍指Offer(java語言)--滑動窗口的最大值(棧和隊列)

題目: 給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4,4,6,6,6,5}; 針對數組{2,3,4,

原创 Android Studio重構項目發生:Error:(3, 17) 錯誤: 程序包org.junit不存在

Rebuild Project Module時,出現: Error:(3, 17) 錯誤: 程序包org.junit不存在 原因:在Module的build.gradle中沒有 testCompile 'junit:junit:4.1

原创 劍指Offer(java語言)--包含min函數的棧(舉例讓抽象具體化)

題目: 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。 注意:保證測試中不會當棧爲空的時候,對棧調用pop()或者min()或者top()方法。 知識點: 棧:先進後出 思路: 1、

原创 劍指Offer(java語言)--二叉搜索樹的第k個結點(樹)

題目: 給定一棵二叉搜索樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8)    中,按結點數值大小順序第三小結點的值爲4。 知識點: 二叉搜索樹:左節點值<根節點值<右節點值 思路: 前序遍歷,根據結點值的從小到大,將