原创 LeetCode筆試題 Contains Duplicate(判斷數組是否存在重複元素)

給定一個整數數組,判斷是否存在重複元素。 如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。 示例 1: 輸入: [1,2,3,1] 輸出: true 示例 2: 輸入: [1,2,

原创 C++ 多重繼承與虛基類

單一繼承是指:一個派生類只繼承一個基類。 多重繼承指的是一個類可以同時繼承多個不同基類的行爲和特徵功能。 class Base1 { public: Base1() { cout << "Base1()" << endl; } ~B

原创 C++多態與虛函數、抽象類與純虛函數

什麼是多態?如何去理解多態?多態的好處是什麼?靜態綁定和動態綁定 多態是指類中具有相似功能的不同函數,使用同一個名稱來實現;是對類的行爲再抽象; 多態從實現的角度可以分爲:  (1)編譯時的多態:靜態聯編(重載、強制、參數),程序編譯連接

原创 LeetCode 筆試題 Valid Palindrome(驗證是否是迴文串)

問題描述 給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。 **說明:**本題中,我們將空字符串定義爲有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama"

原创 LeetCode筆試題 Single Number(找出只出現了一次的元素)

給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2

原创 LeetCode 筆試題 字符串空格替換

問題描述   將 “we are happy”中的空格替換爲“%20”。 即輸入“we are happy” 輸出“we%20are%20happy”     代碼一 //如果直接遍歷碰到空格,後面所有的往後移動,則徒勞的移動太多, /

原创 linux目錄、文件類型、權限及基本操作命令

linux爲多用戶系統 命令在《linux高性能服務器編程》中 1.根目錄下面有許多子目錄 /root  管理員的家目錄 /mnt 臨時掛載點  /boot 系統內核 與系統啓動有關的文件 /home 普通用戶啊的家目錄 /dev  存

原创 Linux進程間通信 管道

問題:如何將一個“hello world”從a進程讀取,從b進程輸出。傳統的一個方法:利用文件的讀取來進行 但是有一個缺點,我們需要對文件的讀寫操作進程控制,並且文件是在磁盤中的,讀寫速度和內存不是一個級別,因此我們需要一個在內存中創建一

原创 LeetCode筆試題 Remove Duplicates from Sorted Array(刪除重複出現的元素)

給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 示例 1: 給定數組 nums = [1,1

原创 LeetCode筆試題 Rotate array(旋轉數組)

問題描述 給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,

原创 LeetCode 筆試題 Reverse String(翻轉字符串)

問題描述 編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 你可以假設數組中的所有字符都是 A

原创 linux下靜態庫與共享庫的製作與使用

linux程序設計第四版 庫:預先編譯好的方法/函數的集合 .c文件編譯成.o文件,再將.o文件的方法放入庫文件 存放庫文件的標準路徑 /usr/lib 用戶安裝的  /lib  系統本身的 所有的頭文件.h存放在 usr/inclu

原创 數據結構之循環順序隊列

隊列的定義 隊列(queue)是隻允許在一端進行插入操作,另一端進行刪除操作的線性表       隊列是一種先進先出的線性表,允許插入的一端稱爲隊尾(rear),允許刪除的一端稱爲隊頭(front)。向隊列中插入元素稱爲入隊,從隊列中刪除