原创 leetcode841. 鑰匙和房間

有 N 個房間,開始時你位於 0 號房間。每個房間有不同的號碼:0,1,2,…,N-1,並且房間裏可能有一些鑰匙能使你進入下一個房間。 在形式上,對於每個房間 i 都有一個鑰匙列表 rooms[i],每個鑰匙 rooms[i][j

原创 leetcode1248. 統計「優美子數組」

給你一個整數數組 nums 和一個整數 k。 如果某個 連續 子數組中恰好有 k 個奇數數字,我們就認爲這個子數組是「優美子數組」。 請返回這個數組中「優美子數組」的數目。 示例 1: 輸入:nums = [1,1,2,1,1],

原创 C++ 定義類 class 和 struct 關鍵字

文章目錄寫在前面區別 寫在前面 struct、class關鍵字都可以定義類 區別 struct、class關鍵字默認訪問權限不一樣 struct中成員默認是public class中成員默認是private

原创 leetcode1042. 不鄰接植花

有 N 個花園,按從 1 到 N 標記。在每個花園中,你打算種下四種花之一。 paths[i] = [x, y] 描述了花園 x 到花園 y 的雙向路徑。 另外,沒有花園有 3 條以上的路徑可以進入或者離開。 你需要爲每個花園選擇

原创 leetcode1387. 將整數按權重排序

我們將整數 x 的 權重 定義爲按照下述規則將 x 變成 1 所需要的步數: 如果 x 是偶數,那麼 x = x / 2 如果 x 是奇數,那麼 x = 3 * x + 1 比方說,x=3 的權重爲 7 。因爲 3 需要 7

原创 leetcode1161. 最大層內元素和

給你一個二叉樹的根節點 root。設根節點位於二叉樹的第 1 層,而根節點的子節點位於第 2 層,依此類推。 請你找出層內元素之和 最大 的那幾層(可能只有一層)的層號,並返回其中 最小 的那個。 示例: 輸入:[1,7,0,7

原创 leetcode542. 01 矩陣

給定一個由 0 和 1 組成的矩陣,找出每個元素到最近的 0 的距離。 兩個相鄰元素間的距離爲 1 。 示例 1: 輸入: 0 0 0 0 1 0 0 0 0 輸出: 0 0 0 0 1 0 0 0 0 示例 2: 輸入:

原创 阿里供應鏈面試

寫在前面 阿里供應鏈JAVA開發,電話面1.5h。 整體面試問的都比較基礎 筆者的方向是人工智能,面試官推薦投算法崗,由於筆者對JAVA不太熟悉,於是面試官說拋開語言(沒有涉及到C++相關知識),重點聊的是算法 在這過程中,完全

原创 阿里螞蟻

一面 自我介紹+ 三次握手過程 三次握手中服務端拒絕連接會發生什麼 ?TCP第三次握手失敗怎麼辦,即最後一次握手失敗 數據結構:對稱二叉樹 ,判斷是否是對稱二叉樹 口述代碼,遞歸的出口,算法的時間複雜度O(N) python:s

原创 c++中 public protected private

參考:鏈接

原创 C++四種類型的轉換方式

寫在前面 參考:鏈接 static_cast const_cast reinterpret_cast dynamic_cast static_cast 用於內置類型的轉換,以及有繼承關係的類之間的轉換。 說明:基類和派生類之間

原创 c++ =default

=default 的作用 在類中定義默認的構造函數,=default可以和聲明一起出現在類的內部(默認構造函數是內聯的),也可以作爲定義出現在函數的外部(不是內聯的) 內聯函數 內聯函數的作用:避免了在函數調用時一系列的保存寄存

原创 C++ 虛函數 從入門到精通

寫在前面 在面向對象的程序設計中爲什麼會出現虛函數這個說法呢? 萬物究其本源: 1.面向對象的三大特徵: 封裝:類 繼承 多態:動態綁定,當使用基類的引用(或者指針)對象調用一個虛函數時,將發生動態綁定,會根據對象本身的類型調用

原创 leetcode820. 單詞的壓縮編碼

給定一個單詞列表,我們將這個列表編碼成一個索引字符串 S 與一個索引列表 A。 例如,如果這個列表是 [“time”, “me”, “bell”],我們就可以將其表示爲 S = “time#bell#” 和 indexes = [

原创 C++智能指針

寫在前面 C++中的對象生命週期 生命週期:程序執行時,對象存在的一段時間 全局對象:生命週期從程序開始啓動時分配,在程序執行結束時銷燬 局部自動對象:生命週期從進入其所在的程序塊時開始,在離開程序塊時銷燬。(自動對象:只存在於