原创 關於HashMap和TreeMap的一些注意點

題目:字符統計 對字符中的 各個英文字符(大小寫分開統計),數字,空格進行統計,並按照統計個數由多到少輸出,如果統計的個數相同,則按照ASII碼由小到大排序輸出 。如果有其他字符,則對這些字符不用進行統計。 輸入例子: aadddcc

原创 騰訊——構造迴文、字符移位、

題目一:構造迴文 給定一個字符串s,你可以從中刪除一些字符,使得剩下的串是一個迴文串。如何刪除才能使得迴文串最長呢?輸出需要刪除的字符個數。 輸入描述: 輸入數據有多組,每組包含一個字符串s,且保證:1<=s.length<=1000

原创 網易——求二叉樹最大葉子節點到最小葉子節點的距離

有一棵二叉樹,樹上每個點標有權值,權值各不相同,請設計一個算法算出權值最大的葉節點到權值最小的葉節點的距離。二叉樹每條邊的距離爲1,一個節點經過多少條邊到達另一個節點爲這兩個節點之間的距離。 給定二叉樹的根節點root,請返回所求距

原创 網易——比較重量(圖的廣度優先搜索)

小明陪小紅去看鑽石,他們從一堆鑽石中隨機抽取兩顆並比較她們的重量。這些鑽石的重量各不相同。在他們們比較了一段時間後,它們看中了兩顆鑽石g1和g2。現在請你根據之前比較的信息判斷這兩顆鑽石的哪顆更重。 給定兩顆鑽石的編號g1,g2,編

原创 一戰通offer

題目一:關於split函數開頭和結尾的空格 對於一個給定的字符串,我們需要在線性(也就是O(n))的時間裏對它做一些變形。首先這個字符串中包含着一些空格,就像"Hello World"一樣,然後我們要做的是把着個字符串中由空格隔開的單詞反

原创 生產者消費者模型——blocking queue和CountDownLaunch

BlockingQueue接口定義了一種阻塞的FIFO queue,每一個BlockingQueue都有一個容量,讓容量滿時往BlockingQueue中添加數據時會造成阻塞,當容量爲空時取元素操作會阻塞。  ArrayBlockin

原创 各種排序算法的穩定性和時間界限分析

首先盜個圖:

原创 美團——股票交易日、二維數組打印、奇數位丟棄、字符編碼(哈弗曼編碼)

股票交易日和二維數組打印這兩道題就是time to sell stock和蛇形矩陣。     題目奇數位丟棄:(關於LinkedList和listIterator的使用) 對於一個由0..n的所有數按升序組成的序列,我們要進行一些篩

原创 百度——罪犯轉移、裁剪網格紙、釣魚比賽、蘑菇陣

題目一:罪犯轉移 C市現在要轉移一批罪犯到D市,C市有n名罪犯,按照入獄時間有順序,另外每個罪犯有一個罪行值,值越大罪越重。現在爲了方便管理,市長決定轉移入獄時間連續的c名犯人,同時要求轉移犯人的罪行值之和不超過t,問有多少種選擇

原创 搜狗——火眼金睛

題目描述 現在我們需要查出一些作弊的問答社區中的ID,作弊有兩種:1.A回答了B的問題,同時B回答了A的問題。那麼A和B都是作弊。2.作弊ID用戶A和作弊ID用戶B同時回答了C的問題,那麼C也是作弊。已知每個用戶的ID是一串數字,一

原创 樹——在二叉樹中找到兩個節點的最低公共祖先LCA

首先利用自底向上的思路——如果遍歷到當前節點是A/B中的任意一個,則向父節點彙報此節點,否則遞歸到節點爲null時返回null值。 具體情況如下幾種: 1.當前節點即爲兩個節點中的一個,此時直接向父節點返回當前節點; 2.遞歸到null,

原创 牛頓迭代法

牛頓法的作用是使用迭代的方法來求解函數方程的根。簡單地說,牛頓法就是不斷求取切線的過程。對於形如f(x)=0的方程,首先任意估算一個解x0,再把該估計值代入原方程中。由於一般不會正好選擇到正確的解,所以有f(x)=a。這時計算函數在x0處

原创 網易——獎學金、路燈

題目描述:獎學金 小v今年有n門課,每門都有考試,爲了拿到獎學金,小v必須讓自己的平均成績至少爲avg。每門課由平時成績和考試成績組成,滿分爲r。現在他知道每門課的平時成績爲ai ,若想讓這門課的考試成績多拿一分的話,小v要花bi 

原创 BFS廣度優先遍歷

樹的層序遍歷即爲BFS的應用。 實質就是利用一個隊列將頂點v的鄰接點保存,因樹的結構比較特殊,所以不需要進行設置flag訪問位,但圖的情況比較複雜,一般需要對每個結點是否被訪問進行標記。 利用BFS可以很容易的利用層數求出最短的步數,比如

原创 DFS深度優先搜索

深度優先搜索是一個遞歸的過程。 它從圖中某個滿足要求的頂點v出發,訪問此節點並將訪問位更改,然後從v的未被訪問的鄰接點出發,深度優先遍歷圖,直到圖中所有和v有路徑相通的頂點都被訪問到。 DFS函數的意義依據情況而定,比如說要在圖中搜索是否