原创 八皇后問題

題目:將8個皇后安排到一個象棋棋盤上(8*8),使得沒有象棋在同一行,同一列和同一對角線 示例:八皇后問題的一種解法,摘自Wikipedia 解法:(最終答案爲92種解法) 1. 窮舉法,測試棋盤上所有可能情況,64選8,有442616

原创 Thinking in Java [Java編程機制] 學習筆記 -- 初始化順序Order of initialization

首先 初始化的順序和變量聲明的順序有關,並且變量(包括primitive types and object reference)的初始化一定是在所有方法被調用之前,甚至constructor也要在此之後。 靜態數據初始化 static

原创 Thinking in Java [Java編程機制] 學習筆記 -- Priority Queue

Priority Queue是優先級隊列,也是我們平時說的堆,可以實現O(1)獲取最大/最小元素,維護操作時間複雜度O(logN) 常用API,具體參見PriorityQueue: 構造方法摘要 PriorityQueue()     

原创 大數據big data相關面試

1. 海量日誌數據,提取出某日訪問百度次數最多的那個IP IP地址是32位的二進制數,所以共有N=2^32=4G個不同的IP地址,如果使用HashMap,則使用的內存((4+4)*4G)遠遠超出內存大小。 解決辦法,用IP的高8位進行劃分

原创 Singleton單例模式的實現 in Java

什麼事單例模式(Singleton)?在進程運行期間,只能存在一個實例化的對象。單例模式在面向對象程序設計上很常見,而且實現的代碼不長,所以也是面試中很常見的題目。 說明:由於要求單例模式要求只能生成一個實例,所以我們要隱藏這個類的構造函

原创 二叉搜索樹轉換爲雙向鏈表 binary search tree to double-linked list

經典的面試題目,思路是遞歸中序遍歷,每次遞歸返回linked list中最後的一個元素lastNode,每次遞歸調用過程中要接受lastNode作爲參數,因爲是中序遍歷,所以將lastNode作爲參數傳進去之後,總是先訪問到最小的node

原创 面試需要掌握的排序 Quick Sort and Merge Sort 快速排序和歸併排序 [Java]

if N (the number of items to be sorted) is 10,000, then N^2 is 100,000,000, while N*logN is only 40,000. If sorting thi

原创 BloomReach業務調查筆記

BloomReach作爲美國top big data startup,我在面試前對其進行了一番調研。 寫在BloomReach.com的首頁:用最相關的內容匹配用戶傾向 業務主要分佈在Mobile(移動設備端)和Organic Searc

原创 Thinking in Java [Java編程機制] 學習筆記 -- List / ArrayList

常用操作集: contains() : find out whether an element is part of a list remove() : remove an object , take the reference of a

原创 國內主流比價網站測試分析報告

1.      爲什麼要做比價網: a.      省錢 – 用戶 b.      跟蹤最低價格 – 競爭企業 2.      什麼比價網最好 首先找到一個好的比價搜索引擎就是一個大問題,有的是針對於某種商品的,例如電子類或者化妝品,有些

原创 Java Annotation and @Inject

http://docs.oracle.com/javase/tutorial/java/annotations/ http://www.vogella.com/tutorials/DependencyInjection/article.h

原创 Thinking in Java [Java編程機制] 學習筆記 -- 操作符Operator

Thinking in Java [Java編程機制] 學習筆記 -- 操作符Operator 1.第一個要說明的操作符,就是"==" 注意事項1: 如果是兩個引用間使用==,比較的是兩個引用,無論所引用對象的值是否相同。所以在比較Int

原创 Java String轉int

注意事項: 1. 判斷length是否大於0 2. 判斷第一個字符是否是‘-’ 3. 設置int值邊界 4. while loop時對每一個字符要判斷是否大於0, 小於10 例子:      * parseInt("0", 10) ret

原创 Thinking in Java [Java編程機制] 學習筆記 -- final 關鍵字

final 關鍵字意義上是不可變更的,創造final關鍵字,原因有兩個1.爲了設計design 2.爲了效率 efficiency(書上很少提到這一部分,而且JRE 5以後編譯器對沒有final的效率做了很大提升)。final關鍵字可以加

原创 對揹包問題的理解

揹包問題(Knapsack problem) 是一種組合優化的NP完全問題。問題可以描述爲:給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內,我們如何選擇,才能使得物品的總價格最高。問題的名稱來源於如何選擇最合適的物品放置於