LeetCode 每日一題 2020 09

2022-06-22 11:15:09 字數 2635 閱讀 4642

2020-09-21【簡單】 538. 把二叉搜尋樹轉換為累加樹

展開**

class solution 

return root;}}

2020-09-22【困難】 968. 監控二叉樹

展開**

class solution 

/*** 0:不可被子女監測(需要被上層監測)

* 1:監視器

* 2:可被子女監測(不安裝監視器,也不用被上層監測)

*/private int dfs(treenode node)

// 子節點有監視器

else if(left==1 || right==1)

return 2;

// 子結點都是2,即不用此節點監測,則此節點自身被上層監測即可

else

return 0;}}

2020-09-23【簡單】 617. 合併二叉樹

展開**

class solution 

}

2020-09-24【簡單】 501. 二叉搜尋樹中的眾數

展開**

class solution ;

list = new arraylist<>();

core(root);

judge();

int size = list.size();

int res = new int[size];

for(int i = 0; imost)}}

2020-09-25【中等】 106. 從中序與後序遍歷序列構造二叉樹

展開**

class solution 

}

2020-09-26【中等】 113. 路徑總和 ii

展開**

class solution 

private void backtracking(treenode node, int rest)

rest = rest - node.val;

if(node.left!=null)

if(node.right!=null)

temp.remove(temp.size()-1);}}

2020-09-27【簡單】 235. 二叉搜尋樹的最近公共祖先

展開**

class solution 

}

2020-09-28【中等】 117. 填充每個節點的下乙個右側節點指標 ii

展開**

class solution 

if(root.right!=null)

root.right.next = next;

// 要先右後左

connect(root.right);

connect(root.left);

return root;

}private node getnextcousin(node node)

}

2020-09-29【中等】 145. 二叉樹的後序遍歷

遞迴

class solution 

}

迭代

class solution 

cur = stack.peek();

//表示cur是從右子節點返回的,此時可以將cur出棧,並輸出

//清空cur,表示下一輪的cur從棧中取,也避免下一輪進入壓棧的判斷

if(cur.right==null || cur.right==pre)

//cur不是從右子節點返回的,說明cur.right還沒有進行遍歷

//令cur=cur.right,開始進行右子樹的後序遍歷

else

cur = cur.right;

}return res;}}

2020-09-30【中等】 701. 二叉搜尋樹中的插入操作

展開**

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...

LeetCode每日一題(題1028)

最近在刷leetcode每日一題,每次做完之後總能有些收穫,所以想著不如每天寫個部落格記錄一下做的題目的解法以及自己寫的時候問題出在 從先序遍歷還原二叉樹 題目大意 給出乙個字串 1 2 3 4 5 6 7 1代表節點的值,前面的 個數代表節點的深度。如果只有乙個子節點,保證這個節點為左子節點。返回...

LeetCode每日一題(題139)

題目 題目大意 給出乙個字串s和乙個字串陣列words,判斷s是否能夠拆分成多個words中的字串。分析 這道題比較簡單的方式應該是採用動態規劃來做。對於任意乙個字串中的區間,可以判斷該區間組成的字串是否在字典中,如果是,則這個區間的真假取決於前面那個區間的真假。給出狀態轉移方程dp i dp j ...