原创 二叉樹的Morris遍歷——傳說中的神級遍歷算法

常用的二叉樹遍歷主要分爲深度優先遍歷(dfs)和廣度優先遍歷(bfs),其中dfs又有前序、中序、後序遍歷之分。然而不管你用迭代還是遞歸的方法實現,它們的空間複雜度都爲O(N)。而本文介紹的Morris算法,只需O(1)的空間複雜度,本質

原创 matplotlib.pyplot超詳細入門總結

目錄 pyplot簡介 格式化繪圖樣式  圖片大小設置與保存 刻度設置 用關鍵字字符串繪圖 用分類變量繪圖 使用文本&繪製直方圖 註釋文字 繪製散點圖 繪製條形圖 對數軸和其他非線性軸 本文主要參考matploylib官方文檔以及黑馬程序

原创 leetcode179場周賽

第一次周賽,打醬油了。   5352. 生成每種字符都是奇數個的字符串 給你一個整數 n,請你返回一個含 n 個字符的字符串,其中每種字符在該字符串中都恰好出現 奇數次 。返回的字符串必須只含小寫英文字母。如果存在多個滿足題目要求的字

原创 c++ queue(隊列)使用指南

1.deque簡介 queue和stack類似,是STL中的容器適配器,它們並不是容器,而是基於其他容器實現。那麼什麼叫容器適配器呢,大家可以想一想電源適配器,沒錯就是下面這個: 它能直接給手機充電嗎?當然不能,那是它可以將電源轉化爲手

原创 otsu閾值分割原理及實現

OTSU算法是由日本學者OTSU於1979年提出的一種對圖像進行二值化的高效算法,是一種自適應的閾值確定的方法,又稱大津閾值分割法。 OTSU算法利用閾值將圖像分爲前景後背景兩部分,使前景與背景之間的方差最大。 記t爲前景與背景的分割閾值

原创 c++優先級隊列(priority_queue)使用總結

1.優先級隊列簡介 優先級隊列(priority_queue)是一種容器適配器,默認基礎容器爲數組vector,使用時需要包含頭文件<queue>。其內部基於堆結構實現,關於堆結構的介紹可以看這裏。理解了堆之後也就能理解優先級隊列的原理,

原创 二叉樹的遍歷彙總,刷題必備

1.簡介 二叉樹的遍歷主要分爲深度優先遍歷和廣度優先遍歷兩大類,廣度優先遍歷是按層從上到下遍歷(先遍歷第一層,再遍歷第二層...),深度優先遍歷則是每一次按樹的一條路徑遍歷至葉子節點,然後遍歷另外路徑上的節點。 其中深度優先遍歷又分爲前序

原创 leetcode上的腦筋急轉彎,你的腦筋會轉彎嗎?

1.Nim遊戲 你和你的朋友,兩個人一起玩 Nim 遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作爲先手。 你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷你是否可以在給定石頭

原创 c++ deque(雙端隊列)使用指南

1.容器簡介 deque是一種具有隊列和棧的性質的數據結構。雙端隊列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。其操作示意圖如下: 相比於vector,deque沒有容量的概念,因爲它是動態的以分段連續空間組合而成,隨時

原创 只是一篇超詳細的c++ list用法總結罷了

1.簡介 list是一個線性雙向鏈表結構,它的數據由若干個節點構成,每一個節點都包括一個信息塊(即實際存儲的數據)、一個前驅指針和一個後驅指針。使用時需要包含頭文件<list>。           它無需分配指定的內存大小且可以任意伸

原创 光譜與色度圖的映射

本文內容來自論文https://doi.org/10.1063/1.5110051   首先我們要知道,顏色不是電磁輻射的特性,而是觀察者的主觀感知。 當光與物體相互作用,光通吸收、反射或折射改變其光譜時,就會觀察到顏色。 物體的顏色取決

原创 約瑟夫問題

本來就這題目而言沒必要寫博客的,不過這個故事挺有意思的,所以還是記錄一下。 據說著名猶太歷史學家 Josephus有過以下的故事:在羅馬人佔領喬塔帕特後,39 個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定寧願死也不要

原创 只是一篇超詳細的c++ set用法總結罷了

set是STL中一種標準關聯容器,所謂關聯容器,就是其元素存放位置並不連續,而是按照一定的關係存放的(比如說紅黑樹,哈希表),與此對應的是順序容器,順序容器元素按照順序存放(如vector,list)。 set底層使用平衡的搜索樹——紅黑

原创 【C++】gcd函數的寫法

gcd函數簡介 大公因數(英語:highest common factor,hcf)也稱最大公約數(英語:greatest common divisor,gcd)是數學詞彙,指能夠整除多個整數的最大正整數。而多個整數不能都爲零。例如8和1

原创 三道題弄懂回溯算法

回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就 “回溯” 返回,嘗試別的路徑。回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不