原创 初識哈希表

目錄 是什麼: 散列表功能: 什麼是散列衝突: 解決散列衝突的方法: 哈希表的性能: 插播阿里面試題: 是什麼: 散列表又名哈希表、hash表 Java中對應的數據結構有hashmap Python中對應的數據結構叫做 字典 它是一種基於

原创 大型網站高性能架構

目錄   性能測試 3個角度看網站性能 性能測試指標 性能測試方法 性能測試報告 性能優化策略 web前端性能優化 瀏覽器訪問優化 CDN加速 反向代理 應用服務器性能優化 分佈式緩存 異步操作 使用集羣 代碼優化 存儲性能優化 機械硬盤

原创 重新開始刷算法題的一些感想

最近又開始重新練習算法題,突然明白算法並不是一開始就要得 完美的解決方案,完美的答案只不過是通過不斷思考和優化得到的最終結果,我們可以從最初的暴力求解開始,然後一步一步優化,打補丁。重要的是思考過程,因爲他就像是釣魚的技術,不管換什麼魚竿

原创 三數之和 3Sum leetcode

leetcode 15.三數之和 3Sum 第一步: 判斷問題類型,觀察 信息之間關係,除了暴力求解,是否有稍微更好一點的解法,如果沒有用最簡單的方法進行暴力求解法 測試中發現有重複問題,解決重複,發現排序纔可以更好的解決重複。 以此寫

原创 大型網站高可用架構

目錄   萬無一失:網站的高可用架構 網站可用性的度量與考覈 網站可用性度量 網站可用性考覈 高可用的網站架構 高可用的應用 高可用的服務 高可用的數據 數據備份 失效轉移 高可用網站的軟件質量保證 網站發佈 自動化測試 預發佈驗證 自動

原创 169. Majority Element求衆數

    題目 給定一個大小爲 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。 你可以假設數組是非空的,並且給定的數組總是存在衆數。 示例 1: 輸入: [3,2,3] 輸出: 3 示例 2: 輸入: [

原创 互聯網到底怎麼連接的?一張圖告訴你

                                                                                                                       

原创 判斷二叉樹A是否包含子樹B——劍指offer(Java)

/*題目 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) * * */ /*思路 * * 先從根節點開始判斷, * 1.如果根節點相同,則從頭遍歷 * 2.如果根不同,則從左右兩個遍歷,任意

原创 滑動窗口的最大值——劍指offer(Java)

/*題目 *給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3, * 那麼一共存在6個滑動窗口:{[2,3,4],2,6,2,5,1}, * {2,[3,

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

/*題目 * 請實現一個函數用來找出字符流中第一個只出現一次的字符 * */ /*思路 * * 巧用 字符數組解決問題, ch[c]++ ,用來標記出現的次數, 等於1的時候只出現一次 * */   char[] c

原创 替換字符串中的空格——劍指offer(Java)

/*題目 * 將一個字符串中的空格替換爲 "%20" * */ /*思路與注意點 * 1.循環比較字符串單個字母,空格追加“%20”,否則追加字母 * 2.在組成新的字符串的過程中,大量字符串組成String效率太低,採用String

原创 鏈表中環的入口節點——劍指offer(Java)

/*題目 * 鏈表中包含環,請找出該鏈表的環的入口節點 * */ /*思路 * 1.使用哈希表,但是空間複雜度爲O(n) * 2.使用快慢指針,slow 一次走一步,fast一次走兩步,當兩個相遇時,fast指針再重新指向he

原创 第一個出現一次的字符——劍指offer(Java)

/*題目 *在一個字符串中找到第一個只出現一次的字符。如輸入acbacd,則輸出b。 * * */ /*思路 * 要想找到這一個字母 必須全部遍歷還要記錄次數 * 雙層循環可以解決,但是時間複雜度爲 o(n^2) *

原创 併發編程知識點全面總結

  目錄 爲什麼會出現鎖 鎖的類型以及相關概念 synchronized: synchronized的具體是怎麼實現的呢? 現在回到synchornized代碼實現上 Volatile: synchronized與Volatile的區

原创 11. Container With Most Water盛水最多的容器

給定 n 個非負整數 a1,a2,...,an,每個數代表座標中的一個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別爲 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容