力扣周赛251题解
T1.字符串转化后的各位数字之和
字符串转化后的各位数字之和
1 | class Solution { |
T2. 子字符串突变后可能得到的最大整数
贪心,找到第一个能够变大的为止,以其为起点突变即可,直到遇到一个突变后会变小的位置。
1 | class Solution { |
T3.最大兼容性评分和
实际上利用next-permutation函数可以通过本题…比赛的时候想复杂了,使用了状压dp。
令$dp[i][status]$表示前$i$个学生已经选择了$status$导师。
则状态转移方程为:
其中$cost(i,j)$表示学生$i$跟随导师$j$的兼容性评分,时间复杂度为$O(n\cdot m^2 \cdot 2^m)$
1 | class Solution { |
T4.删除系统中的重复文件夹
卡常卡到爆炸…
考虑根据所有的文件路径复原出文件树,文件树的复原过程类似于字典树的构建过程。
接下来对于构造出来的文件树进行DFS,利用DFS求出以$node$为根节点的子树的所有文件的hash值。
最后只要当前子树的hash值出现过,则当前子树就要被删除。
最后再利用一次DFS遍历出答案即可。
1 | const int base = 233; |