原创 jobdu-1447-最短路

問題 題目:[jobbu-1447] 思路(dijkstra) DIJKSTRA( G, w, s ){ 1.INITIALIZE-SINGLE-SOURCE(G,s) 2.S = EMPTY 3.Q =

原创 leetcode-125-Valid Palindrome

問題 題目:[leetcode-125] 思路 先預處理下,然後利用庫即可。 代碼 class Solution { public: bool isPalindrome(string s) { std::s

原创 華爲2018校招

題目1 題目描述 請一個在字符串中找出連續最長的數字串,並把這個串的長度返回;如果存在長度相同的連續數字串,返回最後一個連續數字串; 注意:數字串只需要是數字組成的就可以,並不要求順序,比如數字串“1234”的長度就

原创 素數對-騰訊2018校招

問題 題目:[素數對-騰訊2018校招] 思路 素數篩法篩出來,判斷即可。 這個題用素數篩法篩出來,判斷的複雜度也比較低。我第一次用集合就慢。 代碼 #include <iostream> #include <string.h>

原创 圖算法小結

本目總結常見的圖算法。 kruskal 構造mst,按邊從小到大遍歷,如果邊的響鈴節點位於不同的集合,那麼該邊是mst當中的一條邊。這個地方需要並查集的知識。 題目:[jobdu-1017] 代碼 #include <iost

原创 poj-2046-循環子串問題

問題 題目:[poj-2046] 思路 這個題目有個結論: 若s存在循環子串,當且僅當,len可以被len - prefix[len-1]整除。連接次數爲len / len-prefix[len-1]. 充分性我不會證明,我就

原创 leetcode-28-Implement strStr()

問題 題目:[leetcode-28] 思路 樸素的思路,主串回溯。 代碼 class Solution { public: int strStr(string haystack, string needle) {

原创 c++學習-std::list

這個東西到不難,有一些接口需要熟悉,暫時記錄下。 代碼 #include <list> #include <iostream> int main(){ std::list<int> mylist; typedef

原创 LRUCache-c++實現

代碼 //LRUCache.h #ifndef LRUCACHE_H_ #define LRUCACHE_H_ #include <utility> #include <unordered_map> #include <list

原创 leveldb-expand接口設計

leveldb-expand接口設計 接口設計 前綴匹配: virtual Status GetPrefix( const Slice& prefix, std::map<s

原创 leveldb-編碼

參考這個鏈接[ leveldb源碼剖析–編碼],把爲什麼要編碼以及如何編碼講的比較清楚。 我再簡單記錄下我自己的學習心得。主要是回答幾個問題,回答清楚就行了。 爲什麼要編碼? 假設key = “hello”, value

原创 leetcode-145-LRU cache

問題 題目:[leetcode-145] 思路 參考了[O(1) unordered_map + list + splice] 參考者代碼的思路非常清晰。 首先,插入和獲取的時間複雜度在O(1),不能用deque去實現。否則無

原创 leetcode-78-Subsets

問題 題目:[leetcode-78] 思路 按照層次進行枚舉即可。主要剪枝的條件。 1. 當前元素之前不能出現過 2. 必須是升序 注意狀態恢復。 代碼 class Solution { public: vector

原创 leetcode-90-Subsets II

問題 題目:[leetcode-90] 思路 上一目的題目需要兩個條件: 1.必須是升序 2.試探過的元素不能反覆試探 3. 如果是相同的元素,同一個位置不能由多個相同元素試探。但是要注意,如果相同元素已經試探了別的位置,那

原创 c++學習-匿名名字空間用法

用法 下午在學習levedb源碼的時候,看到version_set.cc有這樣一段代碼: // Callback from TableCache::Get() namespace { enum SaverState { kNo