乙個開頭 乙個結尾
乙個開頭 乙個中間(劃分為兩部分)
for(i = 0, j = 0; i < n; i++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
o(n^2)
將上面bf演算法優化到o(n)
將空格分割的單詞提取出來
#include #include using namespace std;
int main()
return 0;
}
最長連續不重複子序列
最長連續不重複子序列
樸素 o(n^2)
for(int i = 0; i < n; i++)
for(int j = 0; j <= i; j++)
if(check(j, i))
雙指標 o(n)
for(int i = 0, j = 0; i < n; i++)
code
#include #include using namespace std;
int n;
const int n = 1e6 + 10;
// a 讀入序列
// s 區間數列 出現次數
int a[n], s[n];
int main()
res = max(res, i - j + 1);
} cout << res;
}
n = 15 = (1111)2
先把第k位移到最後>>k
看下個位是幾x&1
n >> k & 1
803二進位制表示中共有多少個1
x = 1010
lowbit(x) = 10
x = 101000
lowbit(x) = 1000
x&-x
=x&(~x+1)
#include using namespace std;
int lowbit(int x)
int main()
}
#include #include #include using namespace std;
typedef pairpii;
const int n = 3e6+10;
int n, m;
int a[n], s[n];
vectoralls;
vectoradd, query;
int find(int x)
return r + 1;
}int main());
alls.push_back(x);
} for(int i = 0; i < m; i++));
alls.push_back(l);
alls.push_back(r);
} // 去重
sort(alls.begin(), alls.end());
alls.erase(unique(alls.begin(), alls.end()), alls.end());
// alls剩下都是不重複的
// 把add離散化到a 處理插入
for(auto item:add)
for(int i = 1; i <= alls.size(); i++) s[i] = s[i -1] + a[i];
for(auto item:query)
return 0;
}
按照區間左端點排序
掃瞄整個區間, 把可能有交集區間進行合併
#include #include #include using namespace std;
typedef pairpii;
const int n = 1e6 + 10;
int n;
vectorsegs;
void merge(vector&segs));
st = seg.first, ed = seg.second;
}else
if(st != -2e9) res.push_back();
segs = res;
}int main());
} merge(segs);
cout << segs.size() << endl;
return 0;
}
字首和 差分 位運算 雙指標
可以利用字首和解決用o n 的時間複雜度求出一段序列的某一段區間的和。s i a 1 a 2 a i a l a r s r s l 1 例題輸入乙個長度為n的整數序列。接下來再輸入m個詢問,每個詢問輸入一對l,r。對於每個詢問,輸出原序列中從第l個數到第r個數的和。輸入格式 第一行包含兩個整數n和...
寒假刷雙指標《雙指標》
633.平方數之和 難度中等163 給定乙個非負整數c,你要判斷是否存在兩個整數a和b,使得a2 b2 c。示例 1 輸入 c 5輸出 true解釋 1 1 2 2 5示例 2 輸入 c 3輸出 false示例 3 輸入 c 4輸出 true示例 4 輸入 c 2輸出 true示例 5 輸入 c 1...
位運算(1) 初識位運算
前段時間數電課學了些進製轉換,還有與或非等邏輯運算,如今再來看看位運算,倒輕鬆了不少。很早就想寫些非總結性部落格了,奈何還是太懶。也也不知怎的突然又來了興致,趕忙寫下這篇部落格。廢話不多說,今天準備總結總結關於位運算的知識。程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的,即0 1兩種狀態,...