原创 比KMP更簡單更有意思的Sunday算法

一般想到字符串的匹配算法,大家很快就會想到KMP,畢竟教科書上都是介紹它相關的內容,但是前面在準備面試的過程中,發現了一種效率不比它差,但是簡單易懂的算法。感覺這種算法確實很有意思。 首先兩個字符串 例如:在eaabb baba

原创 知其然知其所以然之——word2vector

在學習word2vector的過程中,下面兩位博主的總結及講解給了我很大幫助。本文主要是記錄在學習和理解他們的博客的過程中個人也有一些思考和理解。本人才學疏漏,有錯誤的地方請大家指正。 http://blog.csdn.net/

原创 阿里一道機器人面試題。

某程序員開發出了一款超級智能機器人,能對任何提問給出“是”或者“不是”的答案。現有3個這種機器人,其中有數量不定的(0到3個)機器人發生了故障。如果正常機器人總是給出正確的答案,而故障機器人總是給出錯誤的答案。每一回合只能問任意一

原创 非遞歸實現堆排序

話不多說,直接上例子,首先得明白具體過程: 45 28 49 16 37 82 56 75(最小堆) 建樹 45 28 49 16 37 82 56 75 從n/2個節點開始選擇

原创 HashMap Java 8 重點內容詳解

從原理和細節上搞定HashMap 聲明:網上講HashMap的帖子很多,各自有各自着重介紹的地方,個人把自己比較感興趣的內容和自己的一點點認識寫下了。 hashmap是由數組和鏈表組成的,要插入的元素首先根據哈希函數得到ha

原创 JVM 類加載器

類加載器的委託模式 提到類加載器,就不得不提到它的委託模式。 Java虛擬機可以安裝多個類加載器,系統默認三個主要的類加載器,每個加載器負責加載特定位置的類: BootStrap,ExtClassLoader,AppCla

原创 《程序員面試代碼指南》之棧和隊列中的套路

再過幾個月要找實習了,有必要花些時間有條理,分專題的好好複習一下。 已經在工作的本科室友給我推薦了左程雲的《程序員面試代碼指南》,由於我們主要都用java,所以覺得這本書還挺不錯的,就準備按照上面的框架複習。 棧和隊列這一章差不多

原创 java io

1 大多數的文檔中都對io做了很多很多的總結,不過我在學習以後,感覺有些地方在實際編程中基本不會用到,而你只需要知道它大概是個什麼東西,等到哪天真的需要用的時候再去詳細查看這方面的資料。下面是我認爲io中一些比較基本重要的東西。

原创 紅黑樹學習筆記

首先,爲什麼會有紅黑樹。 它存在的意義在於: 因爲一棵由n個結點隨機構造的二叉查找樹的高度爲logn,所以順理成章,二叉查找樹的一般操作的執行時間爲O(lgn)。但二叉查找樹若退化成了一棵具有n個結點的線性鏈後,則這些操作最壞情

原创 卷積神經網絡學習筆記

卷積神經網絡 轉自:http://dataunion.org/11692.html 找到一個很不錯的CNN的講解,認真花了點時間把裏面自己感覺有用的東西稍微懂了一些。 以前組會上聽人講過,但是當時有些地方聽得不是太明白。卷積

原创 SyntaxNet安裝與使用詳解

安裝SyntaxNet的工作環境,遇到很多麻煩,到後來發現如果不走彎路,其實並不麻煩。 1 我最開始是安裝anaconda。(python2.7版本) https://www.continuum.io/downloads

原创 Numpy學習手冊

標準安裝的Python中用列表(list)保存一組值,可以用來當作數組使用,不過由於列表的元素可以是任何對象,因此列表中所保存的是對象的指針。這樣爲了保存一個簡單的[1,2,3],需要有3個指針和三個整數對象。對於數值運算來說這種

原创 《程序員面試代碼指南》之約瑟夫環問題

題目:給定一個鏈表,一個整數m,從表頭開始報數,每次報到m就該節點從鏈表中去掉。 輸出最後剩下的節點。 普通做法,就是遍歷,當計數到m時把該節點刪去,然後繼續維持環狀。 時間複雜度O(m*n) 在上面的算法中,我們花費了太多時間

原创 Neural Machine translation中的Attention機制

隨着深度學習的發展,NMT(Neural machine translation)已經逐漸取代了SMT(statistic MT)。其最大的有點就是系統的整體和簡單,少去了統計機器翻譯中的分詞,對齊。抽短語等繁瑣的步驟。 而NMT

原创 Constituent Parsing & Dependency Parsing 句法分析簡介

由於博主前面在學習句法分析的時候發現,相關的學習資料少之又少,費了不少功夫收集和整理。所以寫幾個筆記記錄一下。 關於Parsing的一些基礎知識:主要包括Parsing任務是幹什麼的,有什麼作用,怎麼做。 可以參考Christo