原创 智能指針(smart pointer)

智能指針(smart pointer)是一種抽象的數據類型(abstract data type)。 在程序設計中, 智能指針通常由類模板(class template)實現,。 通常藉助模板達到泛型,藉助類的析構函數來達成自動釋放指針所

原创 給定一個file, 查找出裏面出現頻率最高的10個單詞

之前已經總結了給定一組數字, 如何在線性時間內找到第k小的數字。 這兩個問題看似有十分subtle的關係。 很顯然這裏是找最大的前K個單詞。 單詞相當於衛星數據, 直接對單詞的鍵值, 即頻率排序啦。  現在我們對這個求top K freq

原创 Eggs Dropping puzzle(2 eggs, 100 floors)

題目如下: You are given two eggs, and access to a 100-storey building. Both eggs are identical. The aim is to find out

原创 如何高效的結算一個正整數中二進制表示1的個數

爲了計算一個正整數中二進制表示1的個數。 我們可以採用查表的辦法。 下面四位四位的計算: 0000對應0個1 0001對應1 個1 0010 對應1個1 .................... 1110 對應3個1 1111對應4個1

原创 Linear models for regresion(迴歸)

線性迴歸模型使用的場景是有監督學習(supervised learning)。 例如下例給定訓練樣本集, 輸入特徵是二維的,讓我們去預測房價。 我們就可以使用線性迴歸模型去求解。 例如多項式擬合價格和輸入二維特徵向量的關係, 我們模型的參

原创 DNA逆序對的問題: DNA sorting

DNA Sorting One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are out of order wi

原创 polymorphism(多態): 虛函數 + 抽象基礎類

C++中, 多態(polymorphism)是三大關鍵詞(分別是encapsulation, inherittance, polymorphsim)之一。 所謂的多態, 簡單的說就是多種形態。 OOP支持如下的兩種多態的實現方式: (1)

原创 互斥鎖和條件變量

多線程同步機制需要兩個基本的機制, 即互斥鎖和條件變量。 互斥鎖防止多個線程併發的訪問共享數據區, 保證每一次只有一個線程對共享數據區的數據進行操作。  雖然互斥鎖能使得資源互斥的訪問, 但是互斥鎖並不是萬能的。 因爲互斥鎖容易造成資源的

原创 C++易忽略點

真的不想這樣, 這樣的題有啥意思, 誰會用到嗎, 就當增加人知吧 對一個數組取&的時候, 出現瞭如下的問題: #include <stdio.h> int main() { const int MAXN = 8; int a[M

原创 機器學習與深度學習相關算法的學習

本人打算開始總結機器學習和深度學習的系列博客了。 以下是要總結的相關算法的內容了, 只是梗概, 後期會做調整的。 (1)Supervised Technique: classifications: --- K nearest neighb

原创 關於如何在vector中的某些元素(這些元素均是相同的值)之前插入一個特定的值

源於C++ primer。  大清早的, 無意中看到C++ Primer上的一個關於在一vector上插入元素的例子捉急。  看了一下, 基本上是關於插入引起迭代器失效的應用。 下面, 摘自C++primer 中文版第309頁習題9

原创 機器學習注意

任何一個機器學習算法包含兩大步驟: (1)訓練(training): 給定訓練數據, 選擇一個機器學習模型, 利用機器學習算法, 結合訓練數據, 學習到模型參數。 學習參數需要選擇一個objective funcion(有稱爲cost f

原创 OOP繼承問題,虛基類, 建構子的構建順序問題

這裏我們說說多重繼承(multiple inheritance)。 多重繼承的問題涉及到建構子和析構子的調用順序問題, 多重繼承造成的歧義型(例如, 當多個base classes中有同名函數的時候, 如何解決, members from

原创 Length of the longest substring without repeating characters

即找到具有不重複字符的最長子字符串。  例如ABDEFGABEF的具有不重複字符的子字符串可以是BDEFGA, 也可以是ABDEFG, 或者是DEFGAB, 長度是6。 可見LSRC是不唯一的。  主要有兩個解決辦法。 方法一(brute

原创 強連通分量和二部圖

對於無向圖G: 如果兩個頂點之間有一條路徑連着, 我們就說這兩個頂點是連通的(無向圖的邊無方向性, 只要有邊連着就是連通的)。 如果滿足圖中的任意兩個頂點都是連通的, 我們就說圖是連通圖。 所謂的連通分量, 就是無向圖中的極大連通子圖。