MISC

  • 比較兩棵二叉樹是否相同Same Tree
    Python版本:
class Solution(object):
    def isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype: bool
        """
        if p is None and q is None:
            return True
        
        if p is None or q is None:
            return False
        
        return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)

C++ 版本:

class Solution {
public:
    bool isSameTree(TreeNode *p, TreeNode *q) {
        if ((p == NULL) && (q == NULL))
            return true;
        else if ((p == NULL) || (q == NULL))
            return false;
        else if (p->val != q->val)
            return false;
        else
            return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
    }
};
  • Find All Numbers Disappeared in an Array
    遍歷兩遍,第一遍標記哪些數(shù)出現(xiàn)過(對應index上的值變成負數(shù))赎离,第二遍找未出現(xiàn)的數(shù)(即數(shù)組中為正的下標+1)
class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        for (size_t i = 0; i < nums.size(); ++i) {
            size_t idx = abs(nums[i]) - 1;
            nums[idx] = nums[idx] > 0 ? -nums[idx] : nums[idx];
        }
        
        vector<int> res;
        for (size_t i = 0; i < nums.size(); ++i) {
            if (nums[i] > 0)
                res.push_back(i + 1);
        }
        return res;
    }
};
  • Can Place Flowers
    0/1數(shù)組里逛犹,判斷能否實現(xiàn)在0的位置不相鄰地插入n個1,任意兩個1不能連在一起
class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        if (n == 0) return true;
        
        int plot_num = flowerbed.size();
        if (plot_num <= 0) return false;
        
        // 先找出1的位置
        vector<int> flower_index;
        for(int i=0; i < plot_num; ++i) {
            if (flowerbed[i])
                flower_index.push_back(i);
        }
        
        // 判斷兩個1之間的0梁剔,能插入多少個1
        int flower_num = flower_index.size();
        int max_available = 0;
        if (0 == flower_num) {
            max_available = (plot_num + 1) / 2;
        } else if (1 == flower_num) {
            max_available = flower_index[0] / 2 + (plot_num - flower_index[0] - 1) / 2;
        } else {
            max_available += flower_index[0] / 2;
            for (int i = 0; i < flower_num - 1; ++i) {
                int zero_n = flower_index[i+1] - flower_index[i] - 1;
                if (zero_n > 0) {
                    max_available += (zero_n - 1) / 2;
                }
            }
            max_available += (plot_num - flower_index[flower_num - 1] - 1) / 2;
        }
        
        return max_available >= n;
    }
};
// 笨辦法虽画,后面再看看有沒有好辦法
class Solution {
public:
    int findShortestSubArray(vector<int>& nums) {
        int n = nums.size();
        if (n <= 1) return n;
        
        map<int, int> count, start_idx, end_idx;
        int degree = -1;
        for (int i = 0; i < n; ++i) {
            int val = nums[i];
            if (count.find(val) == count.end()) {
                count.insert(make_pair(val, 1));
            } else {
                count[val] += 1;
            }
            
            if (start_idx.find(val) == start_idx.end()) {
                start_idx.insert(make_pair(val, i));
                end_idx.insert(make_pair(val, i));
            } else {
                end_idx[val] = i;
            }
            if (count[val] > degree)
                degree = count[val];
        }
        
        int minLen = n;
        for (map<int, int>::iterator it = count.begin(); it != count.end(); ++it) {
            int val = it->first;
            if (it->second == degree) {
                int curLen = end_idx[val] - start_idx[val] + 1;
                if (curLen < minLen)
                    minLen = curLen;
            }
        }
        
        return minLen;
    }
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荣病,隨后出現(xiàn)的幾起案子码撰,更是在濱河造成了極大的恐慌,老刑警劉巖个盆,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脖岛,死亡現(xiàn)場離奇詭異,居然都是意外死亡颊亮,警方通過查閱死者的電腦和手機柴梆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來终惑,“玉大人绍在,你說我怎么就攤上這事”⒂校” “怎么了偿渡?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長件舵。 經常有香客問我卸察,道長,這世上最難降的妖魔是什么铅祸? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任坑质,我火速辦了婚禮,結果婚禮上临梗,老公的妹妹穿的比我還像新娘涡扼。我一直安慰自己,他們只是感情好盟庞,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布吃沪。 她就那樣靜靜地躺著,像睡著了一般什猖。 火紅的嫁衣襯著肌膚如雪票彪。 梳的紋絲不亂的頭發(fā)上红淡,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音降铸,去河邊找鬼在旱。 笑死,一個胖子當著我的面吹牛推掸,可吹牛的內容都是我干的桶蝎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼谅畅,長吁一口氣:“原來是場噩夢啊……” “哼登渣!你這毒婦竟也來了?” 一聲冷哼從身側響起毡泻,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤胜茧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后牙捉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竹揍,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年邪铲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片无拗。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡带到,死狀恐怖,靈堂內的尸體忽然破棺而出英染,到底是詐尸還是另有隱情揽惹,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布纵势,位于F島的核電站柔昼,受9級特大地震影響架诞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疯溺,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哎垦。 院中可真熱鬧囱嫩,春花似錦、人聲如沸漏设。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郑口。三九已至鸳碧,卻和暖如春盾鳞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瞻离。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工雁仲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琐脏。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓攒砖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親日裙。 傳聞我的和親對象是個殘疾皇子吹艇,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • 一些概念 數(shù)據(jù)結構就是研究數(shù)據(jù)的邏輯結構和物理結構以及它們之間相互關系,并對這種結構定義相應的運算昂拂,而且確保經過這...
    Winterfell_Z閱讀 5,691評論 0 13
  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結構受神,樹與前面介紹的線性表,棧格侯,隊列等線性結構不同鼻听,樹是一種非線性結構 1.樹的定...
    Jack921閱讀 4,442評論 1 31
  • 題量有點多,建議Ctrl + F題號或題目哦~ 二叉樹的遍歷(前序遍歷联四,中序遍歷撑碴,后序遍歷)[144] Binar...
    野狗子嗷嗷嗷閱讀 9,085評論 2 37
  • 課程介紹 先修課:概率統(tǒng)計,程序設計實習朝墩,集合論與圖論 后續(xù)課:算法分析與設計醉拓,編譯原理,操作系統(tǒng)收苏,數(shù)據(jù)庫概論亿卤,人...
    ShellyWhen閱讀 2,265評論 0 3
  • 最近從工作中得到最大的啟發(fā)就是清楚任務具體要求,當你去做某件事情時鹿霸,一定要確認好相關信息排吴,不要出現(xiàn)信息不對稱而出現(xiàn)...
    環(huán)盈閱讀 130評論 0 1