題目:
給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。
思路:遞迴比較。判斷兩顆樹是否有相同的結構,就是比較根節點的val值,如果相同,比較左右子樹的節點值。這樣就可以用遞迴處理。
如果遇到錯誤的,那麼繼續比較左子樹或者右子樹
/**
* definition for a binary tree node.
* function treenode(val, left, right)
*//**
* @param s
* @param t
* @return
*/const issubtreeaa = (s, t) => ;
var issubtree = function (s, t) ;
題目:
給定乙個偶數長度的陣列,其中不同的數字代表著不同種類的糖果,每乙個數字代表乙個糖果。你需要把這些糖果平均分給乙個弟弟和乙個妹妹。返回妹妹可以獲得的最大糖果的種類數。
思路:這個主要看理解,理解了就很簡單。因為是平分糖果,所以最理想的情況是妹妹獲得的糖果包含所有糖果的種類。最差情況是有糖果超過了3個,這個時候妹妹和弟弟的糖果種類就不同。
/**
* @param candies
* @return
*/var distributecandies = function(candies) ;
題目:
給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。
你找到的子陣列應是最短的,請輸出它的長度。
思路:可以對陣列進行排序,然後和原陣列比較,判斷最左和最右的的值不同的下標差即可
/**
* @param nums
* @return
*/var findunsortedsubarray = function(nums)
return right - left + 1 || 0;
};
題目:
給定乙個 n 叉樹,返回其節點值的前序遍歷。
例如,給定乙個 3叉樹 :
返回其前序遍歷: [1,3,5,6,2,4]。
說明: 遞迴法很簡單,你可以使用迭代法完成此題嗎?
遞迴:
/**
* // definition for a node.
* function node(val, children) ;
*//**
* @param root
* @return
*/var preorder = function(root)
};search(root);
return res;
};
迭代:
/**
* // definition for a node.
* function node(val, children) ;
*//**
* @param root
* @return
*/var preorder = function(root)
} return res;
};
題目:
給定乙個 n 叉樹,返回其節點值的後序遍歷。
例如,給定乙個 3叉樹 :
返回其後序遍歷: [5,6,3,2,4,1].
說明: 遞迴法很簡單,你可以使用迭代法完成此題嗎?
遞迴:
/**
* // definition for a node.
* function node(val,children) ;
*//**
* @param root
* @return
*/var postorder = function(root)
res.push(root.val);
};search(root);
return res;
};
迭代:和前序不同的是,後序是從子節點遍歷的,所以只需要後面遍歷的節點放陣列的前面就行了
/**
* // definition for a node.
* function node(val,children) ;
*//**
* @param root
* @return
*/var postorder = function(root)
} return res;
};
刷題記錄12
某條街被劃為 n 條路段,這 n 條路段依次編號為1 dots n1 n。每個路段最多可以種一棵樹。現在居民們給出了 h 組建議,每組建議包含三個整數 b,e,t,表示居民希望在路段 b 到 e 之間至少要種t棵樹。這些建議所給路段的區間可以交叉。請問 如果要滿足所有居民的建議,至少要種多少棵樹。i...
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...