原创 【LeetCode】0013——羅馬數字轉整數

題目描述 解題思路 本題只是上一個題目【整數轉羅馬數字】逆過程,需要注意的是,在遇到I、X、C時我們要繼續判斷它的下一個字符是什麼 1、Java代碼 class Solution { public int romanT

原创 【深度學習】神經網絡與BP算法

前言   本篇主要介紹神經網絡的基本結構、激活函數以及學習算法(BP算法)   神經網絡 主要由三個組成部分,第一個是架構(architecture)或稱爲拓撲結構(topology),描述神經元的層次與連接神經元的結構。第二個組

原创 【Tensorflow】Tensorflow實現簡單神經網絡進行手寫數字識別

前言 【Tensorflow】Tensorflow實現線性迴歸及邏輯迴歸 【深度學習】神經網絡與BP算法 前一篇介紹了使用 Tensorflow 實現線性迴歸及邏輯迴歸,並實現了手寫數字識別的案例;後一篇介紹了BP神經網絡,以及P

原创 【NLP】分步剖析Transformer

前言 前面我們介紹了【NLP】圖解從RNN到seq2seq+Attention,裏面提及了 Attention,本篇就是來具體看看 Attention 的來源 Attention Is All You Need (Transfor

原创 【NLP】圖解從RNN到seq2seq+Attention

從RNN到seq2seq+Attention 前言   本篇將從 RNN 的角度出發,一步一步進階到 seq2seq 以及加了 Attention 的 seq2seq。 宏觀上看看什麼是seq2seq Seq2Seq 是一個 En

原创 【HanLP】正向、逆向及雙向最長匹配法分詞

前言   我們知道,在英文的行文中,單詞之間是以空格作爲自然分界符的,而中文只是字、句和段能通過明顯的分界符來簡單劃界,唯獨 詞 沒有一個形式上的分界符,雖然英文也同樣存在短語的劃分問題,不過在詞這一層上,中文比之英文要複雜得多、

原创 【算法編程】排序算法詳解

一、排序算法複雜度比較 T(N) = a*T(N/b) + O(N^d) log(b,a)>dlog(b,a) > dlog(b,a)>d -> 複雜度爲O(Nlog(b,a))O(N^{log(b,a)})O(Nlog(b,a

原创 【算法編程】KMP、Manacher和BFPRT算法

一、KMP算法 1、算法背景   KMP 算法原本是用來解決包含問題的,具體問題如下: 給定一個主串 str1 和模式串 str2 ,要求找出 str2 在 str1 中出現的位置,此即串的模式匹配問題。 例如: str1:

原创 【LeetCode】008——字符串轉換整數(atoi)

解題思路   本題第一反應就是順序遍歷字符串的每一個字符,然後根據題目要求進行判斷,顯然本題的難點就不在於算法本身,而在於對於各種情況和邊界的考慮: (1)如何去除開頭空格字符; 可以通過順序遍歷字符串字符,判斷是否爲空字符

原创 【LeetCode】0002——兩數相加

題目描述 解題思路 Java代碼 class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode

原创 【LeetCode】0004——尋找兩個有序數組的中位數

題目描述 解題思路 中位數需要根據兩個數組長度和的奇偶決定: 假設nums1.length = m,nums2.length = n 若(m + n) % 2 == 0,表示兩數組長度之和爲偶數,中位數則是中間兩個數 否則爲奇

原创 【LeetCode】0001——兩數之和

題目描述 解題思路 Java代碼 class Solution { public int[] twoSum(int[] nums, int target) { if(nums == null || nu

原创 【LeetCode】0007——整數反轉

題目描述 解題思路   本題定義爲簡單,那麼應該用不到什麼高大上的數據結構,其實就是考大家對 % 和 / 的使用,以及對整數邊界的判別。 %:取餘,例如:11 % 10 = 1,取尾 /:除以並取整,例如:11 / 10 =

原创 【算法編程】二叉樹經典題(基礎篇)

二叉樹的遍歷   二叉樹遍歷分爲三種:前序、中序和後序,爲什麼這麼命名呢?其實是根據節點順序命名的。 如圖爲滿節點,1爲根節點、2爲做節點、3爲右節點,主要是看根結點1的位置,在前面就是前序遍歷、在中間就是中序遍歷、在後面就是

原创 【LeetCode】0461——漢明距離

題目描述 解題思路   本題我首先想到的就是通過異或找出二進制爲不同的,異或操作如下:對應位置相同結果爲0,對應位置不同則爲1 例如: 1 0 1 0 1 1 1 0 異或 ------------- 0 1 0 0   因此