leetcode刷題記錄 12 簡單

2021-10-08 23:35:12 字數 2443 閱讀 7942

題目:

給定兩個非空二叉樹 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 需要一種方法,尋找符合要求的元...