原创 【內部命令,外部命令,作業控制我全都要】從零開始寫一個屬於你自己的shell

0 前言   都說程序員的三大終極夢想是操作系統、數據庫、編譯器。可現在太弱雞了,沒有linus大神兩週寫內核的本事,但自己寫一個shell還是可行的。本文將會從頭記錄如何編寫一個支持大多數外部命令,支持cd、jobs、bg、fg

原创 【爬蟲、貝葉斯、SVM、LDA一條龍服務】從數據收集到文本分類:從零開始你自己的數據挖掘工程

0. 前言 對於每個學習數據挖掘的人來說,總會在某個時刻想要自己從頭開始一項數據挖掘工程。這不同於用一用搜狗的新聞資料庫,或者是kaggle、天池等競賽的資料庫,要自己從頭開始收集數據,使用爬蟲收集,然後去重,數據清理等等。 使用已有的數

原创 【LeetCode】74. Search a 2D Matrix 在有序矩陣中搜索指定數字

一、概述 很簡單的題,用最直觀的做法也可以做得出,那麼寫這個博客,是爲了記錄一種更好的做法——我這種直觀的做法沒法做到耗時0ms,但是更好的做法可以。 二、分析 1、我的做法 首先搜索每行的第一個元素,確定要找的元素在哪一行,然後在該行

原创 【硬着頭皮啃C++ Primer】第1章 開始

第1章 開始   早已聽說C++Primer的大名,可一直沒時間去拜讀。趁這個假期,來拜會一下這本神書。我會將這本書的重點記錄下來,和大家分享。 1.1 編寫一個簡單的C++程序   一個函數的定義包括四個部分:返回類型、函數名、

原创 【LeetCode】劍指DP:53. Maximum Subarray 最大子串和

一、概述 Easy題,吉跋貓Easy。這題我想了一個半小時沒想出,只好投降。看了半天看明白了DP的原理,還有遞歸和分治,這倆懶得看了。服了服了,先看DP吧。實在是有點難。 Discuss區一個老哥的抱怨是我內心的真實寫照: hhhhh

原创 【LeetCode】劍指DP:5. Longest Palindromic Substring 最長迴文子串

一、概述 輸入一個字符串,輸出它的最長迴文子串。 經典DP問題。爲什麼突然想要做DP了呢?因爲最近這幾次打Contest,每次第三題和第四題必定是DP,不用DP做不出來那種。所以就自閉了。有的是自己寫了半天一直TLE才後知後覺需要DP。因

原创 【LeetCode】57. Insert Interval 插入序列

一、概述 輸入一個元素爲子區間的長序列和一個目標區間,將目標區間插入到長序列中。注意長序列中各元素不重疊,要求插入後不破壞不重疊這一性質。舉例如下: 長序列爲[[1,2],[3,5],[6,7],[8,10],[12,16]],目標區間爲

原创 【LeetCode】30. Substring with Concatenation of All Words 單詞匹配子串

一、概述 輸入一個字符串s和一個字符串數組words,words中的字符串等長,若s有一個子串,由words中所有元素構成,則輸出這個字串的第一個字符的下標。輸出所有該類型子串的下標。 要求有點繁瑣,舉例子就很簡單: s = "barf

原创 【LeetCode】劍指DP:10. Regular Expression Matching & 44. Wildcard Matching 正則表達式匹配&通配符匹配

一、概述 輸入兩個字符串:s和p,判斷s能否匹配p。 這倆題要求差不多,44題最開始我沒用DP,一點一點循環匹配,結果最多過了1600+testcase,剩下的過不去,因爲循環匹配無法覆蓋所有的邊界條件。當時很難受,因爲邊界條件有很多,我

原创 【LeetCode】60.Permutation Sequence 輸出第k個排列

一、概述 輸入正整數n和k,輸出包含1~n共n個整數組成的排列中的第k個。 比如說n=3,則排列有123,132,213,231,312,321六個。k=3則輸出213。 我使用遞歸求解,很容易看懂,時間複雜度很好,空間複雜度還可以。

原创 【LeetCode】33. Search in Rotated Sorted Array 扭轉的有序數組中尋找元素

一、概述 這題目出的有點模糊,“rotated at some pivot”,你這個some,到底是一個轉折點還是好幾個啊,查了一下pivot,可數名詞,單數,所以應該是一個。不然想一下極端情況,對於1234,調轉二次變成2143,那這個

原创 【LeetCode】32.Longest Valid Parentheses 最長合法序列

一、概述 輸入一個只包含左括號和右括號的字符串,輸出其最長合法序列的長度。 什麼叫最長合法序列呢?就是在此序列中,不改變順序,每一個左括號的後面總有一個右括號與之對應。例如 ((())) ()()() 但是 ))(( 這種不是。   二

原创 【LeetCode】29.Divide Two Integers 整數除法的實現

一、概述 輸入兩個數a和b,輸出a/b,去尾法保留整數。不許用乘或除或取餘。 想半天不知道怎麼做。只好去看discuss。原來是用了左移和右移。 然後自己做。鐵孤兒題。邊界條件一堆,快把我折磨出INT_MIN的PTSD了。 二、分析 1

原创 【LeetCode】31. Next Permutation 下一個排列

一、概述 傻逼題目。我看題目根本無法理解它的意思。什麼叫“the lexicographically next greater permutation of numbers”。 直譯過來是“按字典序的下一個更大的數字的排列”。十分模糊的概

原创 【LeetCode】25. Reverse Nodes in k-Group 鏈表中k個元素倒置

一、概述 24題兩兩調換元素他爹。這個我沒想好怎麼用奇偶鏈表做,用二階指針或者遞歸也感覺太麻煩。因此選擇用棧做。 做出來了,但是效果很辣雞。 二、分析 1、我的方法 循環,棧中壓入k個元素,再讀取k個元素即可。代碼如下: /** *