复盘|天堂硅谷·数字经济算法编程大赛
题目-01 化学反应
【模拟】按题意模拟(可以用大根堆或者平衡树),每次找两个最大的出来,直到没有剩余或只剩一个。
1 | #平衡树 |
1 | #大根堆 |
题目-02 销售出色区间
【前缀和 + 单调栈】把销售产品>8的天数当成增1,<=8的天数当成减1,判断的同时把前缀和算出来,寻找最长presum[i] - presum[j] >0的区间。
1 | class Solution: |
题目-03 重复的彩灯树
【二叉树的序列化】在先序的位置递归序列化每棵树,每次用哈希表计数并找到重复次数为2的子树。
1 | class Solution: |
题目-04 补给覆盖
【后序遍历递归】对于每个root,一共有三种状态,状态0:没覆盖其他节点也没被覆盖;状态1:被覆盖了;状态2:覆盖其他节点。(空节点不需要覆盖别人也不需要被覆盖,默认状态1即可。)
1 | class Solution: |