原创 cha7--進程環境

一、main()函數 1.函數原型int main(int argc, char *argv[])   2.參數:argc:命令行參數的數目;argv[]:指向參數的各個指針構成的數組   二、進程終止 1.有8種進程終止方式,5種正常終

原创 錯誤expected identifier before numeric constant

刷題時報錯:expected identifier before numeric constant 原因:C++類體裏,方法以外的區域不允許有初始化;類的數據成員在定義時不能初始化,否則就違背了面向對象抽象的特點

原创 19.刪除鏈表中倒數第n個結點

一、題目: 19.刪除鏈表中倒數第n個結點 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3

原创 刷leetcode-day37

一、題目: 155.最小棧: 設計一個支持 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。 push(x) -- 將元素 x 推入棧中。 pop() -- 刪除棧頂的元素。 top() -- 獲取棧頂元素。 getM

原创 gCjetcIlBq

博客搬家

原创 17.電話號碼的字母組合

一、思路: 建立一個存放結果的vector<string>res,再建一個臨時vector<string>tempres,遍歷字符串digits,每次將res裏的每個字符串加上新添加的字母放入tempres裏,結束後用tempres更新r

原创 102.二叉樹的層序遍歷

一、思路: 二叉樹層序遍歷使用隊列:一個結點出隊時將它的左右孩子放入隊列,依次循環打印(循環條件爲隊列非空); 當需要按行打印時,需引入last和nlast兩個指針,last指向當前行的最後一個結點,nlast指向下一行的最後一個結點(每

原创 21. 合併兩個有序鏈表

一、思路: 採用雙指針法,每次比較兩個指針指向的結點的大小,將小的放入第三個鏈表並將指針向後移動一個結點,直到有一個指針爲空。最後將非空的指針後面的結點放入第三個鏈表。 二、代碼(C++): ListNode* mergeTwoList

原创 chapter1--UNIX基礎知識

/*20190528*/ /*APUE*/ /*第一章--UNIX基礎知識*/ 1.Unix操作系統體系結構 內核--》系統調用--》shell/公用函數庫--》應用程序 2.登錄口令     1. 口令文件:/etc/passwd; 

原创 11.盛最多水的容器

解法(C++): (1)暴力法:遍歷每一種可能 int maxArea(vector<int>& height) { int m=0; //保存最大值 for(int i=0;i!=height.

原创 8.字符串轉換整數(atoi)

一、思路: 首先找到第一個非空元素,分‘+’‘-’‘數字’三種情況考慮,依次將每一位字符轉換成數字即可。 二、代碼(C++): int myAtoi(string str) { int fir = 0; //記錄第一個非空元素位

原创 4.尋找兩個有序數組的中位數

一、思路: 要求時間複雜度爲O(M+N),採用雙指針法,將兩個有序數組歸併到另一個數組裏,返回新數組的中位數。 二、代碼(C++): double findMedianSortedArrays(vector<int>& nums1, v

原创 7.整數反轉

一、思路: 通過循環,依次取該整數的最後一個數,再反過來放入另一個整數;要注意在過程中通過INT_MAX,INT_MIN關鍵字判斷有沒有越界 二、代碼(C++): int reverse(int x) { int re

原创 3.無重複字符的最長子串

一、思路: (1)暴力法:遍歷所有的字串,統計不含有重複字符的字串的最大長度 (2)滑動窗口法:選取(i,j]範圍的元素,查看窗口右邊的元素,如果元素不在窗口內,j向右移動一個;如果右邊的元素在窗口中已經有了重複的值,把i移動到那個重複的

原创 排序算法(二)--歸併排序

歸併排序:將多個有序的子序列歸併成一個有序的序列 1、時間複雜度:O(NlogN) 2、空間複雜度:O(N)-->適合外部排序 3、穩定性;穩定 4、分爲遞歸實現(自上而下)和非遞歸實現(自下而上) 5、算法實現: (1)遞歸實現: /