原创 LeetCode: 二叉樹的層次遍歷 和

給定一個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。 例如: 給定二叉樹: [3,9,20,null,null,15,7],     3    / \   9  20     /  \    15   7 返回

原创 LeetCode: 單值二叉樹

如果二叉樹每個節點都具有相同的值,那麼該二叉樹就是單值二叉樹。 只有給定的樹是單值二叉樹時,才返回 true;否則返回 false。   示例 1: 輸入:[1,1,1,1,1,null,1] 輸出:true 示例 2: 輸入:[2,2,

原创 LeetCode: 合併兩個有序鏈表

將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。  示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4   struct ListNode* mergeTw

原创 LeetCode: 最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar

原创 LeetCode: 下一個排列

實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空間。 以下是一些例子,輸入位於左側列,其相應

原创 6.828 2020 Lab1 MapReduce 實驗

1. MapReduce論文 關於這片論文沒啥好說的,有地方不懂得可以看課程的視頻( B站有 ), MapReduce論文翻譯。具體工作過程可參見下圖: 2. Lab 大致內容 整個Lab要完成的代碼文件有三個: 1. Master.g

原创 LeetCode: 從中序與後序遍歷序列構造二叉樹

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重複的元素。 例如,給出 中序遍歷 inorder = [9,3,15,20,7] 後序遍歷 postorder = [9,15,7,20,3] 返回如下的二叉樹:  

原创 大桶小桶裝水問題

今天看到一個小學的一個益智題,題目如下:         你有一個四升的水桶和一個九升的水桶,並且你有一個有水的水池.你最少需要多少步才能正好裝滿六升的水? 當然這個題不是很難,但是可以引申到一般情況,對於兩個大小爲 m 和 n 的桶,他

原创 LeetCode: 路徑總和 II

給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum = 22,               5            

原创 LeetCode: 子集

給定一組不含重複元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重複的子集。 示例: 輸入: nums = [1,2,3] 輸出: [   [3],   [1],   [2],   [1,2,3],   [

原创 LeetCode: 從前序與中序遍歷序列構造二叉樹

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重複的元素。 例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder = [9,3,15,20,7] 返回如下的二叉樹:  

原创 LeetCode: 區間合併

給出一個區間的集合,請合併所有重疊的區間。 示例 1: 輸入: [[1,3],[2,6],[8,10],[15,18]] 輸出: [[1,6],[8,10],[15,18]] 解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併爲

原创 LeetCode: 旋轉圖像

給定一個 n × n 的二維矩陣表示一個圖像。 將圖像順時針旋轉 90 度。 說明: 你必須在原地旋轉圖像,這意味着你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。 示例 1: 給定 matrix =  [   [1,2,3

原创 1122. 數組的相對排序

給你兩個數組,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 中出現過的元素需

原创 LeetCode: 合併兩個有序數組

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成爲一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別爲 m 和 n。 你可以假設 nums1 有足夠的空間