力扣第284场周赛题解
A.6031. 找出数组中的所有 K 近邻下标
找到每个$nums[j] == key$的$j$,将所有$max(0,j-k),min(j+k,n-1)$的下标都统计起来即可。$1 <= nums.length <= 1000$,不需要优化可以直接$O(n^2)$过。
AC代码:
1 | class Solution |
B.5203. 统计可以提取的工件
看上去题目很复杂,但是题目保证了每个$dig$元素都不重复,也即每次挖掘都不重复,那么只需要统计面积 == 挖掘次数的元件数量即可。
AC代码:
1 | class Solution |
C.5227. K 次操作后最大化顶端元素
前排也wa的挺惨的,个人感觉题目有歧义。
两种情况:
- 先使用$k-1$次把前$k-1$个元素删除,最后一次恢复已删除中的最大值。
- 删除前$k$个元素。
还有 $-1$ 以及 $k>n$的特殊情况,special judge
即可。
AC代码:
1 | class Solution |
D.6032. 得到要求路径的最小带权子图
- 从起点1出发,求出到各个点的最短距离$dis1[]$
- 从起点2出发,求出到各个点的最短距离$dis2[]$
- 建反图,从终点出发,求出到各个点的最短距离$dis3[]$
答案就是$\min ^{n-1}_0{dis1[i]+dis2[i]+dis3[i]}$
AC代码:
1 | class Solution |