原创 Battleships in a Board

連着的橫着的或者豎着的x就是一艘船,每兩艘不會連着, 比如它給的 x . . x . . . x . . . x 這個左面的x是一艘,右面的三個x是一艘,然後 . . .x xxxx . . .x 這樣的不會給你,因爲中間的左3個x和右邊

原创 heap的一些實現,二叉堆,左式堆,二項隊列

//這裏的堆指的都是二叉堆,爲了優先隊列產生(優先隊列,使一些特殊的結點在出隊的時候要優先出來。出隊入隊操作變成了insert和delete) //堆是一個完全二叉樹,除了最後一層,其餘層都是滿的。這樣的話存儲用一個數組就可以,任一個元素

原创 Word Pattern

這個hash的模式之前也用過,Isomorphic Strings這道題用過,就是搞兩個表,對兩個比較的模式,key塞字符串,值塞第一次出現的位置,然後兩個表的字符串,如果是對應的,那麼相應的key的值是一樣的,如果不對應(模式不一樣),

原创 Isomorphic Strings

哈希表,哈希的思想,不一定都要用unordered_map的.... class Solution { public: bool isIsomorphic(string s, string t) { int Se[

原创 Count Primes

啊,不用埃拉託斯特尼篩法,怎樣都是time超了......具體篩法就是那個圖,下面這段話是別處找的,能理解大致意思,但是有一點我理解的和他不一樣,這個找素數應該是遍歷中當前的下一個沒被標記的就是素數,而不用全找完了再遍歷一圈,看下面的代碼

原创 Balanced Binary Tree

這個麻煩在,對以一個結點爲根的樹,左右樹都Balance,左右樹的差小於1同時滿足才行。第一種,每一個算Balance都要算到下面的height,然後複雜度O(N^2) /** * Definition for a binary tre

原创 hash,分離鏈接法,探測散列表(二次探測),再散列的代碼

數據結構與算法分析C++版的搬運工...... #include<string> #include<vector> #include<list> using namespace std; //字符串hash,把每個字符的ASCII碼加起