2054. 两个最好的不重叠活动;1255. 得分最高的单词集合;858. 镜面反射

2054. 两个最好的不重叠活动

核心思想:枚举+小堆。因为你最多可以参加两个时间不重叠活动,所以我们就枚举其中一个活动,用一个堆来维护右边界的最小值,因为我们的event是排序的,前面满足的max_r_v,后面的event也肯定满足,因为它的start只可能是大于等于前面的start。

2054. 两个最好的不重叠活动;1255. 得分最高的单词集合;858. 镜面反射_第1张图片

1255. 得分最高的单词集合

核心思想:回溯。dfs(i,val)表示当前的得分为val时选择第i个words,对于第i个单词,有两种情况,选或者不选,选的话大体分为三部分,第一部分为cnt中删除word[i]的字母,第二部分为往下递归,第三部分为递归完恢复现场。

2054. 两个最好的不重叠活动;1255. 得分最高的单词集合;858. 镜面反射_第2张图片

858. 镜面反射

核心思想:数学逻辑,光线的垂直移动距离为p,q的最小公倍数,根据最小公倍数和p,q的除数关系可以得到本题答案。

2054. 两个最好的不重叠活动;1255. 得分最高的单词集合;858. 镜面反射_第3张图片

你可能感兴趣的:(python,算法)