原创 劍指offer——字符串空格替換

題目描述: 請實現一個函數,將一個字符串中的空格替換成”%20”。例如,當字符串爲We Are Happy,則經過替換之後的字符串爲We%20Are%20Happy。 思路: 一組單詞不是有空格嘛,所以直接使用String類的s

原创 劍指offer——從尾到頭打印鏈表

題目描述: 輸入一個鏈表,從尾到頭打印鏈表每個節點的值 思路: 用一個輔助存儲棧來實現。 代碼實現: /** * public class ListNode { * int val; * Li

原创 PageRank算法簡介及Map-Reduce實現

轉自: http://www.cnblogs.com/fengfenggirl/ PageRank對網頁排名的算法,曾是Google發家致富的法寶。以前雖然有實驗過,但理解還是不透徹,這幾天又看了一下,這裏總結一下PageRank

原创 HTTP請求報文和HTTP響應報文

本文要解決的問題: 詳細分析HTTP請求報文和HTTP響應報文 HTTP報文是面向文本的,報文中的每一個字段都是一些ASCII碼串,各個字段的長度是不確定的。HTTP有兩類報文:請求報文和響應報文。 HTTP請求報文 一個HTT

原创 劍指offer——重建二叉樹

題目描述: 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則

原创 Bloom Filter 布隆過濾算法學習

BloomFilter——大規模數據處理利器     Bloom Filter是由Bloom在1970年提出的一種多哈希函數映射的快速查找算法。通常應用在一些需要快速判斷某個元素是否屬於集合,但是並不嚴格要求100%正確的場合。

原创 劍指offer——變態跳臺階

題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路: 現在青蛙的能力升級了,不僅能一次跳1級,還能一次跳n級,這是了不起的進步(說笑的)。不管如何,我

原创 TCP 滑動窗口機制

本文要解決的問題: 瞭解滑動窗口機制的原理和基本方法。 (1).窗口機制    滑動窗口協議的基本原理就是在任意時刻,發送方都維持了一個連續的允許發送的幀的序號,稱爲發送窗口;同時,接收方也維持了一個連續的允許接收的幀的序號,稱

原创 快速排序

主要寫一下快速排序,基本思想就是: 隨機取一個值作爲中間值,此處我們取第一個,然後按照大於中間值得數放到其右邊,小於中間值的數放到其左邊,依次下去,知道排序完成。 時間複雜度爲:O(nlogN) 空間複雜度:O(N) pu

原创 劍指offer——跳臺階

題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路: 這種問題的思路一般是採用數學歸納法,當n=1時,只有一種跳法;當n=2時,青蛙可以一次跳2級,也可以一次跳兩級,需要

原创 劍指offer——二進制中1的個數

題目描述: 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 思路: 一個數與該數減一的結果進行與運算,會把該數右邊(低位)第一個1變爲0,而該位左邊保持不變(高位)。可以舉一個簡單的例子進行證明:比如1100(

原创 劍指offer——在二維數組中查找元素

題目描述: 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 思路: 由於題目條件的成立,所以使得這道題可以使

原创 歸併排序

import java.util.Arrays; public class MergeSort { /** * 歸併排序 * 簡介:將兩個(或兩個以上)有序表合併成一個新的有序表 即把待排序序列

原创 最美房子編程題

題目描述 有一個n*m的數組grid,數組值爲0或1,爲1之處代表房間,相鄰的1是同一所屋子的房間(斜線相鄰不算),求一共有多少屋子? 如 0 0 0 0 0  0 1 1 0 0 0 0 0 0 0 0 0 0 1 1

原创 搭建Spark2.0源碼研讀和代碼調試的開發環境

搭建Spark源碼研讀和代碼調試的開發環境 Table of Contents 源碼獲取與編譯 從Github上獲取Spark源碼編譯Spark項目源碼導入與代碼運行 導入源碼到Intellij IDEA 16運行實例代碼 1. 配