原创 1000.函數求值

class Solution { public: int F(int k, int n) { if (k == 0) return n; else { int sum = 0; fo

原创 2^N-2的N次方

string powint(int n)//類似於字符串乘法 { string result = "1"; for (int i = 0; i < n; i++) { string tmp=""; int sum = 0,

原创 數組全排列問題

void print(vector<int>a)//輸出一次排列 { for (int i = 0; i < a.size(); i++) { cout << a[i]; } cout << endl; } void DFS

原创 圖的深度優先遍歷

void DFT(vector<vector<int>>G, int i, int n,vector<bool>&visit)//標誌數組必須採用引用傳遞 { visit[i] = true; cout << i + 1;

原创 字符串全排列

class Solution {//類似於數組的全排列,但是需要注意有的元素相同需要去除,因此用了set元素不能重複的特性 public: vector<string>tmp; set<string>Tmp; vo

原创 區間合併

vector<pair<int, int>>merge(string s) { vector<pair<int, int>>tmp, result; if (s.empty()) { return result; } int

原创 如何提取matlab產生的.fig圖像中的數據

相信很多理工科研究生們在學術研究時,通常會畫ROC曲線圖來表示自己實驗結果的優越。但是在paper時,需要和其他方法進行對比,因此,你需要復現其他人的方法,然後畫出ROC曲線,再將自己的ROC曲線與其他的畫到同一個圖中進行對比。好了,上面

原创 二維數組的查找

//解題思路:因爲二維數組在行和列是遞增的,那麼我們從右上角查起,如果是就找到,如果目標比此值大,轉到下一行開始找,如果比此值小,那麼就在此行找,知道找到邊界沒找到就返回false;class Solution { public:

原创 數組中出現次數超過長度一半的數字

class Solution {//經典問題,利用兩個輔助變量,一個記錄數字出現次數,一個記錄數字。當後面的數字與其相等次數加1,不同減1,當次數爲0時,記錄數字就換成此時的數字最後剩下的數字有可能是所求,但是不一定,還要重新遍歷一次數組

原创 8.20 NP問題

在一個無向圖G=(V,E)中,我們稱D⊆V爲一個佔優集,是指每個V∈V都屬於D或與D中一個節點爲鄰。在佔優集問題中,輸入爲一個圖和預算b,目標是求圖的一個規模不超過b的控制集——如果該集存在。證明該問題是NP-完全的。 解答: 可以將頂

原创 兩個鏈表的第一個公共結點

/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*///因爲具有公共結點的兩個鏈

原创 單詞翻轉

class Solution {//先整體反轉,然後在單個單詞翻轉 public: void revers(string &str,int i,int j)//要採用引用傳遞 { while (i < j) { char

原创 圖的廣度優先

void BFT(vector<vector<int>>G, int n)//G是圖,n是點的個數 { vector<bool>visit(n); deque<int>Q; for (int i = 0; i < n; i++)

原创 1006.單詞變換

class Solution { public: int min(int a, int b) { return a > b ? b : a; } int minDistance(string word1, string w

原创 數組中只出現一次的兩個不同數字

//大致思路:如果是隻有一個出現一次的數字的話,直接全部異或求值最終剩下的就是所求,因爲,異或的性質就是,a^a=0,a^0=a;回到本題目,還是全部進行異或,因爲有兩個出現一次的數字,所以異或完後剩下的數字就是兩個數字異或的值,那麼這個