原创 【C++】 ——繼承的三種方式比較以及繼承中小的知識點

繼承1、public、protected、parivate修飾類的成員2、 public 、protected、private指定的繼承方式說明3、 基類與派生類對象賦值的轉化4、繼承中的隱藏5、隱藏、重載、重寫(覆蓋)的區別6、

原创 【LeetCode】 ——只有兩個鍵的鍵盤(650)

只有兩個鍵的鍵盤 分析: 注意以下幾點:先開始已經有一個字符A,不支持部分複製,並且只能粘貼你上一次複製的字符 思路:我們先寫出前十項觀察一下 當n=1,return 0; n=2,return 2; n=3,return 3;

原创 【牛客題解】 ——數組中只出現一次的數字

數組中只出現一次的數字 思路一:利用unordered_map,先把數組中的數字和次數放入map中,再次遍歷數組,如果次數爲1,則記錄結果 class Solution { public: void FindNumsAp

原创 【牛客題解】 ——整數中1出現的次數

整數中1出現的次數 思路一:迭代 class Solution { public: int NumberOf1Between1AndN_Solution(int n) { int count=0;

原创 【C++】 ——紅黑樹C++完整代碼

紅黑樹完整代碼 #pragma once #include <iostream> using namespace std; enum Colour { BLACK, RED, }; template <class T> s

原创 【LeetCode】 ——翻轉字符串裏的單詞(151)

題目描述 看到這個題我以爲跟我之前做的翻轉字符串的題一樣,要麼是先整體翻轉,再局部反轉;要麼是先截取字符串再翻轉;後來發現我錯了,這個題明顯比剛纔說的那個題高一個level,如果用之前那種方法寫,測試用例只能過0.00%。所以這

原创 關於測試的知識點總結【一】

測試的知識點總結(一)1、什麼是軟件測試?軟件測試的目的與原則是什麼?2、簡述什麼是靜態測試、動態測試、黑盒測試、白盒測試、α測試 、β測試?好的測試用例設計工作的關鍵是什麼?3、單元測試,集成測試,系統測試的測試對象,目的,測試

原创 【牛客題解】 ——連續子數組的最大和

連續子數組的最大和 代碼: class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { if(arra

原创 【數據結構】 ——刪除鏈表中的重複節點(不保留重複節點)

刪除鏈表中的重複節點(不保留重複節點) (劍指offer上面對這個題難度是4(總共五顆星),我尋思着,是我最近進步了?我覺得沒那麼難吧) 說下我的思路:利用map存儲鏈表節點的值和次數,遍歷map,當map元素次數爲1的時候,開

原创 【C++】 ——全排列算法

關於全排列算法,分爲兩種:可重複的全排列和不包含重複的元素的全排列 一、含重複元素的全排列 算法思路: (1)n個元素的全排列=(n-1個元素的全排列)+(另一個元素作爲前綴); (2)出口:如果只有一個元素的全排列,則說明已經排

原创 【C++】 ——判斷一棵樹是否爲平衡二叉樹的兩種方法

判斷一棵樹是否爲平衡二叉樹 思路一:根據求樹的深度的方法,依次得到每個節點左子樹和右子樹的高度,再次計算每個節點其左右高度差是否滿足小於等於1,若都滿足返回真,若不滿足返回假 class Solution { public:

原创 【C++】 ——迭代器失效的兩種情況?

1、什麼是迭代器失效 (可能你一上來,面試官就會問你這個問題了)我簡單總結一句:迭代器失效就是因爲插入和刪除,使得原本可以訪問到容器內迭代器的元素,變得無法再訪問。因爲插入和刪除可能更改了元素在內存中的位置,原來迭代器指向的位置不

原创 【牛客刷題】 ——把數組排成最小的數

把數組排成最小的數 思路:先把數組裏面的數通過stringstream轉成string類型的,再進行比較大小。最終返回一個string class Solution { public: static bool Compa

原创 【C++】 ——指針和引用的區別、數組和鏈表的區別

1、指針和引用的區別 都是地址的概念,指針指向的是一塊內存,它的內容是內存的地址,但是引用是一塊內存的別名。 區別: 指針是一個實體,但是引用僅僅是別名 引用使用時,無需解引用(*),但是指針需要解引用 引用只能在定義的時候被初

原创 【C++】——快速排序(前後指針,挖坑法,快慢指針法)

一、前後指針法 基本思路: 1.將數組的第一個數a[left]作爲基準數key。 2.分區過程:right開始向前找比key小的數(end找小);數組的首元素left開始向後找比key大的數(begin找大);找到後然後兩者交換(