原创 路徑總和

來源:力扣(LeetCode)給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum = 22,

原创 付費智力題

題目:你讓工人爲你工作7天,給工人的回報是一根金條。金條平分成相連的7段,你必須在每天結束的時候給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費? (內心os:什麼奇怪的條件哈哈哈哈哈哈) 正經題解: 第一天:你切出

原创 關於宏替換的一道可愛小題

下面程序運行後的輸出結果是__ #define F(X,Y)((X)+(Y)) int main() { int a=3, b=4; printf("%d\n", F(a++

原创 數字智力題

用數字5,5,5,1,進行四則運算,每個數字當且僅當使用一次,要求運算結果值爲24. 用數字 5.5.5.1=24 可以這樣來 5*(5-1÷5)=24

原创 define與typedef

今天遇到一個有關於define和typedef的題,如下。 一個test.c文件中包含如下語句: #define INT_PTR int * typedef int* int_ptr; INT_PTR a,b; int_ptr

原创 二叉樹的最小深度

來源:力扣(LeetCode)題目:給定一個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,

原创 二進制求和

來源:力扣(LeetCode)給定兩個二進制字符串,返回他們的和(用二進制表示)。 輸入爲非空字符串且只包含數字 1 和 0。 示例 1: 輸入: a = "11", b = "1" 輸出: "100" 示例 2: 輸入: a

原创 相同的樹

來源:力扣(LeetCode)題目:給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。 如果兩個樹在結構上相同,並且節點具有相同的值,則認爲它們是相同的。 示例 1: 輸入: 1 1

原创 x的平方根

來源:力扣(LeetCode)題目:實現 int sqrt(int x) 函數。計算並返回 x 的平方根,其中 x 是非負整數。由於返回類型是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示

原创 對稱二叉樹

來源:力扣(LeetCode)題目:給定一個二叉樹,檢查它是否是鏡像對稱的。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面這個

原创 最大子序和

來源:力扣(LeetCode)給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子數

原创 Linux下的編譯器gcc的使用

首先了解編譯器在對代碼編譯的時候有以下的階段 1.預處理(進行宏替換) 2. 編譯(生成彙編) 3. 彙編(生成機器可識別代碼,也就是編譯成目標文件) 4. 連接(生成可執行文件或庫文件) 假設我寫了一個test.c文件,示例:

原创 爬樓梯

來源:力扣(LeetCode)題目:假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋:

原创 將有序數組轉換爲二叉搜索樹

來源:力扣(LeetCode)將一個按照升序排列的有序數組,轉換爲一棵高度平衡二叉搜索樹。 本題中,一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。 示例: 給定有序數組: [-10,-3,0

原创 最後一個單詞的長度

來源:力扣(LeetCode)給定一個僅包含大小寫字母和空格 ’ ’ 的字符串,返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 說明:一個單詞是指由字母組成,但不包含任何空格的字符串。 示例: 輸入: "He