原创 實習面經總結2:滴滴研發技術面(2面)

    上次電話面試,過了一面,預約的今天二面。以爲是現場敲代碼,結果不是的,先是問問題,然後最後留了一道題。先給大家貼上對於問題的大概回憶。面試大概一個多小時把,前面依舊問的是我的算法,我的論文,我的專利,我的項目。然後就是在做項目中,

原创 實習面經總結1:阿里巴巴(阿里雲)技術面

咳咳..   先說一些閒話~  畢竟這是第一次去分享面試經驗。之前都是在牛客網看別人分享的經驗,不知不覺就到了我要分享的時候了。。  現在有一點點小小的激動,因爲自己的學歷、能力、情商,自己認爲並沒有一個拿得出手的,雖然只是實習,那應該也

原创 劍指offerNo59. 按之字形順序打印二叉樹(Java)

題目描述: 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 思路: 使用兩個棧,stack1和stack2。設置變量layer爲了記錄層數,

原创 劍指offerNo57. 二叉樹的下一個結點(Java)

題目描述: 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 思路:   示例 示例中的樹的中序遍歷順序是(8,4,2,9,10,5,1,6,3,7)

原创 劍指offerNo58. 對稱的二叉樹(Java)

題目描述: 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 思路: 示例 示例圖是對稱的。(左代表左孩子,右代表右孩子) 節點1的左與右; 節點1的左左與右右;節點1的左右

原创 劍指offerNo55. 鏈表中環的入口結點(Java)

題目描述: 給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null。 思路: 思路1:設置快慢指針,剛開始快慢指針同時指向某一個節點,然後進行next,當快慢指針再次相遇的時候,說明該鏈表有環。 思路2:使用HashSe

原创 劍指offerNo56. 刪除鏈表中重複的結點(Java)

題目描述: 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5 思路: 遍歷節點的同時判斷當前節點與下一個節點是否

原创 劍指offerNo48. 不用加減乘除做加法(Java)

題目描述: 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 思路: 不能用四則運算,那麼可是使用位運算 如:  5 + 17 =22         其中5的二進制(101),17的二進制(10001) 先

原创 劍指offerNo45. 撲克牌順子(Java)

題目描述: LL今天心情特別好,因爲他去買了一副撲克牌,發現裏面居然有2個大王,2個小王(一副牌原本是54張^_^)...他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!“紅心A,黑

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

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

原创 劍指offerNo44. 翻轉單詞順序列(Java)

題目描述: 牛客最近來了一個新員工Fish,每天早晨總是會拿着一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這

原创 劍指offerNo38 . 二叉樹的深度(Java)

題目描述: 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 思路: 從根節點分別遍歷左子樹的深度和右子樹的深度,然後比較之後取較大,最後加1即可。 代碼: pac

原创 劍指offerNo43. 左旋轉字符串(Java)

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

原创 劍指offerNo37. 數字在排序數組中出現的次數(Java)

題目描述: 統計一個數字在排序數組中出現的次數。 如給定排序數組{1,2,3,3,3,4,5}, 給定統計數字是2,那麼輸出是3(指2在排序數組中出現的次數) 思路:利用二分查找 利用二分查找,找到數字第一次出現的位置n 然後開始在該數字

原创 劍指offerNo42. 和爲S的兩個數字(Java)

題目描述: 輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 對應每個測試案例,輸出兩個數,小的先輸出。 思路: 用兩個指針,第一個指針start從左至右開