leetcode個人題集分類(更新中)
阿新 • • 發佈:2019-02-09
leetcode
Yo~easy難度已經完成
題目 | 標籤 |
---|---|
[764] N-ary Tree Level Order Traversal | |
[772] Construct Quad Tree | |
[438] Find All Anagrams in a String | |
[300] Longest Increasing Subsequence | |
[501] Find Mode in Binary Search Tree | dfs |
[530] Minimum Absolute Difference in BST | dfs |
[532] K-diff Pairs in an Array | hash |
[558] Quad Tree Intersection | dfs |
[572] Subtree of Another Tree | dfs tree |
[581] Shortest Unsorted Continuous Subarray | binary search |
[589] N-ary Tree Preorder Traversal | tree traversal |
[617] Merge Two Binary Trees | merge tree dfs |
[637] Average of Levels in Binary Tree | bfs queue |
[669] Trim a Binary Search Tree | Trim tree |
[687] Longest Univalue Path | dfs tree |
[720] Longest Word in Dictionary | trie |
[744] Network Delay Time | dfs map |
[874] Walking Robot Simulation | simulation pair |
[937] Reorder Log Files | Custom Sort |
快速判斷是不是質數(單次)
O(sqrt(N)/6)
//Written by Coffee. 判斷素數
bool isPrime(int num)
{
if (num == 2 || num == 3)
{
return true;
}
if (num % 6 != 1 && num % 6 != 5)
{
return false;
}
for (int i = 5; i*i <= num; i += 6)
{
if (num % i == 0 || num % (i+2) == 0)
{
return false;
}
}
return true;
}
使用istringstream來讀取string的單詞物件
C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們建立物件就必須包含這個標頭檔案。
istringstream類用於執行C++風格的串流的輸入操作。
ostringstream類用於執行C風格的串流的輸出操作。
strstream類同時可以支援C風格的串流的輸入輸出操作。
stringstream的建構函式原形如下:
istringstream::istringstream(string str);
它的作用是從string物件str中讀取字元。
示例程式碼:
unordered_map<string, int> count;
istringstream iss(A + " " + B);
string temp;
//hashmap中注入每個單詞(分隔符隔開的被定義為單詞)
while (iss >> temp)
{
count[temp]++;
}
對於string物件使用istringstream(orign_string);
對istringstream物件初始化
然後接下來的使用方法和標準庫中的cin物件相似。
穩定排序和不穩定排序的區別
std::sort:
不保證保持相等元素的順序。
複雜性: O(N·log(N))
N= = std::distance(first, last)比較
std::stable_sort:
保證保持相等元素的順序。
複雜性: O(N·log^2(N)),其中N=的std::distance(first, last)應用程式cmp。如果有額外的記憶體,那麼複雜性就是O(N·log(N))。
這意味著std::stable_sort在執行時間方面不能非常有效地執行,除非“額外的儲存器可用”,在這種情況下,它在儲存器消耗方面沒有被有效地執行