原创 C/S通信過程和基本socket函數

C/S通信過程 程序流程圖 狀態轉換圖 服務器調用socket()、bind()、listen()完成初始化後,調用accept()阻塞等待,處於監聽端口的狀態,客戶端調用socket()初始化後,調用connect()發出

原创 vim模式切換和對應的常用命令

目錄 三個模式的切換方式 命令模式命令 文本模式命令 末行模式命令 配置文件位置 三個模式的切換方式 命令模式命令 vim進入文件是的模式:vim + 文件名 保存並退出:ZZ 分類 命令 作用 說明 移動光標 h、l、j、k 對應 左

原创 可執行文件生成過程和gcc參數介紹

文章結構 可執行文件生成過程 1. 預處理器 2. 編譯器 3. 彙編器 4. 鏈接器 gcc參數用法 語法 參數 可執行文件生成過程 對於一個源文件test.c生成可執行文件test.out的過程如下:  1. 預處理器 輸入文件:t

原创 LeetCode 股票買賣問題(動態規劃)

很多讀者抱怨股票系列問題奇技淫巧太多,如果面試真的遇到這類問題,基本不會想到那些巧妙的辦法,怎麼辦?所以本文拒絕奇技淫巧,而是穩紮穩打,只用一種通用方法解決所用問題,以不變應萬變。 這篇文章用狀態機的技巧來解決,可以全部提交通過。不要覺得

原创 LC315.計算右側小於當前元素的個數

題目描述 解題思路 戳這裏有篇 優質題解 vector<int>index; vector<int> countSmaller(vector<int>& nums) { if(!nums.size

原创 圖解快速排序及雙路三路快速排序

前言 之前我們介紹了交換類排序中的冒泡排序,這次我們介紹另一種交換類排序叫做快速排序。快速排序的優點是原地排序,不佔用額外空間,時間複雜度是O(nlogn)。 當然,對於快速排序來說,它也是有缺點的,它對於含有大量重複元素的數組排

原创 數組小和-歸併排序

題目描述 給定一個數組arr,求arr每個位置arr[i]左邊≤arr[i]的數的和,最後返回每個位置的總和sum。 示例: 輸入:arr[] = {2,5,4,7} 輸出:sum = 15 sum[0] = 0 sum[1]

原创 LC22.括號生成-回溯

題目描述 解題思路 我們可以採用遞歸回溯的思路,用兩個變量分別記錄左括號和有括號使用的次數,然後對於當前的位置i我們可以放置左括號,也可以放置有括號(第一個位置除外)。所以對於每一層遞歸我們就可以把放置左右括號分別繼續遞歸,相應

原创 queue && deque

一、queue queue是一種先進先出的數據類型,有頭部和尾部,頭部負責數據的出隊,尾部負責數據的入隊。不支持遍歷操作 數據操作 pop(): 從隊列的頭部彈出數據 push(): 在隊尾壓入數據 front(): 獲取

原创 LC421.數組中兩個數的最大異或結果-Trie樹

題目描述 解題思路 總的來說就只需要兩步 將數組中的數全部存入字典樹中 遍歷樹中的每一個數在字典樹中異或的最大結果,最後再求最大結果裏面的最大值返回就是了 class Trie{ public: // map<int, v

原创 LC493. 翻轉對-歸併排序

題目描述 思路: 利用歸併排序的思想當我們希望在數組中求出逆序對的數目時,我們可以使用歸併排序的方法。這道題中i < j 且 nums[i] > 2 * nums[j]的要求與逆序對類似,因此我們也可以使用歸併排序的方法求出翻轉

原创 堆結構實現

堆結構介紹 堆是一種數據結構,在邏輯上是一顆完全二叉樹,在存儲上是一個數組。堆有大頂堆、和小頂堆之分,大頂堆:對於每個父節點而言,其左右子節點都是小於父節點的,所以根節點也就是堆頂保存的是堆內最大的元素;小頂堆:每個父節點的值都是

原创 LeetCode 約瑟夫環(動態規劃)

面試題62. 圓圈中最後剩下的數字 題目描述 法一:鏈表模擬(超時) 直接模擬刪除的過程,比如開始的時候是從0位置開始遍歷,每隔m刪除一個數,當我們在依次遍歷m-1位置的同時,將它們依次移動到鏈表的末尾。當遍歷到m位置的時候就不添

原创 LC 求醜數(這個數的確很醜)- 動態規劃

判斷這個數是否是醜數 解題思路 題目中的醜數是隻包含質因數2,3,5的正整數,也就是說如果一個數是醜數的話那麼這個數一定只包含因數2,3,5,因此我們可以將這個數依次除去2,3,5最後判斷這個數是否是被除盡,如果除盡的話那麼這個

原创 LC313.超級醜數(這個數超級醜) - 動態規劃

題目描述 解題思路 這題的解法和第K個醜數(戳這裏)解法一樣,只是在第K個醜數的基礎上擴展了一下,下面的代碼就是對比第K個醜數寫出來的。 int nthSuperUglyNumber(int n, vector<int>