原创 【算法】【字符串】Leetcode迴文子串相關題目

最長迴文子串 題目鏈接:https://leetcode-cn.com/problems/longest-palindromic-substring/ class Solution { public: pair<int, int>

原创 【算法】【動態規劃】揹包問題

0-1揹包 題目鏈接:https://www.acwing.com/problem/content/2/ 思路 實現 #include <iostream> using namespace std; const int N = 101

原创 【算法】【前綴和和差分】Leetcode560. 和爲K的子數組

題目鏈接:https://leetcode-cn.com/problems/subarray-sum-equals-k/ 前綴和 + 枚舉 class Solution { public: int subarraySum(vecto

原创 【劍指offer】【字符串】58-II. 左旋轉字符串

58. II左旋轉字符串 題目鏈接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/ class Solution { public: //塊交換問題

原创 【算法】【並查集】Leetcode高頻面試題

無向圖中連通分量的數目 題目鏈接: https://leetcode-cn.com/problems/number-of-connected-components-in-an-undirected-graph/ class Solution

原创 【算法】【並查集】並查集

並查集 將兩個集合合併; 詢問兩個元素是否在一個集合當中; 基本原理:每個集合用一顆樹來維護,每個集合根節點的編號是當前集合的編號,每個節點存儲它的父節點,p[x] 表示x的父節點; 如何判斷樹根: p[x] = x;

原创 【算法】【搜索和回溯】Leetcode全排列

46. 全排列 題目鏈接:https://leetcode-cn.com/problems/permutations/ class Solution { public: vector<bool> flag; vector<v

原创 【算法】【搜索和回溯】Leetcode組合總和

39. 組合總數 題目鏈接:https://leetcode-cn.com/problems/combination-sum/ class Solution { public: vector<vector<int>> res;

原创 【算法】【搜索和回溯】Leetcode子集

78. 子集 題目鏈接:https://leetcode-cn.com/problems/subsets/ class Solution { public: vector<vector<int>> res; vector<i

原创 【算法】【搜索和回溯】Leetcode高頻面試題

BFS 完全平方數 題目鏈接:https://leetcode-cn.com/problems/perfect-squares/ class Solution { public: int numSquares(int n) {

原创 【C/C++】【C++11】auto詳解

auto類型常規推斷 C++11中,auto用於自動類型推斷,在聲明變量的時候根據變量初始值的類型自動爲此變量選擇匹配的類型,不需要程序員顯示指定類型; auto自動類型推斷髮生在編譯器期間,所以不會影響程序執行期間的性能; aut

原创 【C/C++】【C++11】模板類型推導

查看類型推斷結果 需要清楚編譯器推斷出來的模板參數以及普通參數類型是什麼; 通過查看編譯器類型推斷的結果;掌握C++類型推斷的規則; 依賴boost庫:如何利用boost庫來把編譯器推斷的類型信息打印出來; 官網:www.boost.org

原创 【C/C++】【C++11】decltype詳解

decltype 用於推導類型,對於一個給定的變量或者表達式,使用decltype可以得到其類型; decltype的自動類型推斷會放生在編譯階段和auto一樣 decltype不會直接計算表達式的值 變量 #include <ios

原创 【C/C++】【C++11】萬能引用

類型區別基本概念 #include <iostream> using namespace std; template <typename T> void func(const T &val){} //T是什麼類型; //val是什

原创 【C/C++】【C++11】函數調用運算符和functional

總述 ()圓括號是函數調用的明顯標記,()也叫函數調用運算符; 如果在類中重載了函數調用運算符,就可以想使用函數一樣使用該類的對象了; 只要對象所屬的類重載了()函數運算符,那麼這個類對象就變成了可調用的;而且可以調用多個版本的(),只要