原创 智能指針(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: 如果兩個頂點之間有一條路徑連着, 我們就說這兩個頂點是連通的(無向圖的邊無方向性, 只要有邊連着就是連通的)。 如果滿足圖中的任意兩個頂點都是連通的, 我們就說圖是連通圖。 所謂的連通分量, 就是無向圖中的極大連通子圖。