原创 頁面置換

頁面置換算法: 當出現缺頁異常,需要調入新頁面而內存已滿時,需要使用置換算法選擇被置換的物理頁面。 局部、全局。 全局置換算法:不區分置換的這個頁面到底屬於哪個進程,這樣的話就隱含着後邊有每個進程分配的物理頁面數會做調整。 局部頁

原创 二叉樹的最近公共祖先

題目描述: 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x,滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個節

原创 零錢兌換

題目描述 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。 樣例 輸入: coins = [1, 2, 5], a

原创 矩陣的最小路徑和

題目描述 給定一個矩陣M,從左上角開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。(難度:簡單,降低空間複雜度) 題解 dp[i][j]表示到達該位置的最小路徑和

原创 生產者消費者問題

臨界區:對臨界資源進行訪問的那段代碼稱爲臨界區。爲了互斥訪問臨界資源,每個進程在進入臨界區之前,需要先進行檢查。 同步與互斥: 同步:多個進程因爲合作產生的直接制約關係,使得進程有一定的先後執行關係。 互斥:多個進程在同一時刻只

原创 判斷一個鏈表是否是迴文結構

題目描述 給定一個鏈表的頭結點,判斷該鏈表是否是迴文結構 樣例 1->2->1 返回true 1->2->2->1 返回true 1->2->3 返回false 題解 方法一: 從左到右遍歷鏈表,遍歷的過程中將每個節點依次入棧

原创 Mancher算法

題目描述 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 樣例 輸入: “babad” 輸出: “bab” 注意: “aba” 也是一個有效答案。 輸入:輸入: “cbbd” "cbb 輸

原创 HBase架構

BigTable HDFS:分佈式文件系統 MapReduce:分佈式計算框架 Hive:數據倉庫。用來計算分析數據 最下面兩層是數據存儲 上面兩層做數據分析 1、非關係型數據庫 cassandra hbase mongo

原创 LFU緩存

題目描述 設計並實現最不經常使用(LFU)緩存的數據結構。它應該支持以下操作:get 和 put。 get(key) - 如果鍵存在於緩存中,則獲取鍵的值(總是正數),否則返回 -1。 put(key, value) - 如果鍵不

原创 LRU緩存機制

題目描述 運用你所掌握的數據結構,設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (key) 存在於緩存中,則獲取密

原创 我是怎樣學習Hadoop的

轉載自微信公衆號hadoop123 通過昨天的初步統計,“Hadoop學習方法”、“Hadoop應用案例”和“Hadoop前景”三個方面最受大家關注。在今後的幾篇文章中,我將重點介紹這幾方面的內容。 今天簡單介紹一下我是如何學習h

原创 並查集

並查集是由一羣集合構成,最開始時所有元素各自單獨構成一個集合。 當集合中只有一個元素時,這個集合的代表節點即爲該元素,該元素的father也是自己。 使用哈希表來存並查集中所有集合的所有元素的father信息,記爲fatherM

原创 二叉樹的非遞歸遍歷

非遞歸後序遍歷題解 1、申請一個棧,記爲stack,將頭結點壓入stack,同時設置兩個變量h和c,h代表最近一次彈出並打印的節點,c代表stack的棧頂節點,初始時h爲頭結點,c爲null 2、 每次令c等於stack的棧頂節

原创 MapReduce相關的幾道面試題

轉載自微信公衆號hadoop123 現有100TB的用戶查詢詞(從搜索引擎日誌中提取出來的),如何用MapReduce計算出現次數最多的K個查詢詞?如何對你設計的算法進行優化?考慮的優化點有:如果一個查詢詞出現次數非常多,產生的

原创 二叉樹的序列化與反序列化

先序遍歷的序列化與反序列化 首先對二叉樹進行先序遍歷,將最終結果拼接成字符串顯示,具體如下 如果該節點不爲空,則str+=節點的值+“!”;否則str+=“#!”;#表示節點爲空,!表示分隔符 public String se