原创 《劍指offer》面試題2:實現Singleton模式

題目:設計一個類,我們只能生成該類的一個實例。 思路 一個類要只能生成一個實例,那就需要將構造函數私有化,就能防止在外部調用構造函數生成新的實例,通過使用靜態成員變量使得外部可以調用這個唯一實例。單例設計模式是經典的設計模式,常用的實

原创 《劍指offer》面試題4:二維數組中的查找

題目:在一個二維數組中,每一行都從左向右遞增,每一列都從上到下遞增。給定一個數target,判斷這個數是否出現在二維數組中。 解題思路 如果使用暴力搜索整個數組的話時間複雜度是O(n^2),比較不理想,那麼有沒有更快地方法呢?觀察如下

原创 樹的直徑(樹中最長路)的計算

樹是一個連通圖的結構,我們定義樹中最長的路徑爲樹的直徑。 算法思路 對於邊沒有權重的樹,我們可以從任意一點u出發進行廣度優先搜索(bfs),找到離u最遠的點s,s是最長路徑的一個端點。以s爲起點,再用一次bfs找到距離s最遠的點t,則

原创 Sublime的配置與使用

1、下載 https://www.sublimetext.com/3dev 下載deb包 2、激活 http://appnee.com/sublime-text-3-universal-license-keys-collection-f

原创 《劍指offer》面試題1:賦值運算符函數

題目的要求是爲如下的類型添加賦值運算符函數 class CMyString { public: CMyString(char* pData=nullptr); CMyString(const CMyString& st

原创 Unix/Linux編程實踐教程筆記【chap15】

進程通過文件進行通信,可能出現的競態條件是一個進程的寫還沒結束另一個進程就讀,導致讀取錯誤內容,這時候需要用鎖機制來回避這種問題。 命名管道(FIFO)可以連接不相關的進程,並且可以獨立於進程存在。 共享內存概念 1)爲了不頻繁的在用

原创 《劍指offer》面試題3:數組中重複的數字

題目1:在一個長度爲n的數組中所有數字的範圍都在0~n-1的範圍內,找出任意一個重複的數字,不存在的話返回-1。 解題思路1 先將數組排序,排序後重復的數字就會在相鄰的位置,那麼只要掃描一遍數組,對比相鄰的數字就可以找出重複的數字。排

原创 c++的四種強制類型轉換

const_cast:從字面意思上就可以理解,去除變量的const屬性。 static_cast:靜態類型轉換,一般用於基本類型間的轉換,如char->int dynamic_cast:動態轉換,同於多態之間的類型轉換 reinte

原创 Unix/Linux編程實踐教程筆記【chap14】

線程的直觀定義 線程對於函數就類似於進程相對於程序,後者爲前者提供了運行的環境。線程使得很多函數可以在同一進程內併發執行。 創建進程pthread_create(頭文件#include <pthread.h>) int pthrea

原创 leetcode 1:two sum

給定一個數組和一個目標數字target,返回數組中的兩個下標,這兩個下標對應的數字的和爲target。(約定數組中滿足要求的數字對是唯一的,每個數組只能使用一次) 例子: Given nums = [2, 7, 11, 15

原创 三步激活windows10

1、查看windows版本 打開控制檯(左下角右鍵選擇Windows PowerShell(管理員)),輸入 wmic os get caption 2、查看對應版本的kms激活祕鑰 打開https://technet.micr

原创 ubuntu安裝nvidia顯卡驅動

ubuntu環境下往往需要安裝顯卡驅動,或是因爲要用cuda做深度學習,或是要玩遊戲,或是用集顯屏幕會閃等,但是n卡的驅動往往會導致循環登錄或者黑屏等問題,我的電腦是惠普暗影精靈2pro,系統是ubuntu16.04 LTS,用了網上所

原创 《劍指offer》面試題5:替換空格

題目:實現一個函數,將字符串中的每個空格替換成字符串“%20”。 解題思路1 使用暴力的方法,從左到右掃描一遍,當遇到空格時就把空格替換成“%20”,然後把空格後面的字符都後移2個位置。由於需要整個字符串掃描一遍,時間爲O(n),替換

原创 ubuntu添加新用戶

1、創建新用戶 sudo adduser username 其中username是你要創建的用戶的名字,然後設置密碼還有相關信息就可以了 2、賦予新用戶sudo權限 用adduser創建後的新用戶是不能使用sudo的,因爲還沒有賦予相關r

原创 歐拉函數的實現

歐拉函數的實現 定義1 :設R是模n的的一個剩餘類,若有 aϵRaϵR ,使得gcd(a,n)=1,則稱R是n的一個簡化剩餘類。 定義2 :對於正整數k,令函數φ(k)φ(k) 的值等於模k的所有簡化剩餘類個數,稱φ(k)φ(k)