每日一题+周赛总结

发布时间 2023-12-03 14:02:27作者: 小柴cyl

每日一题+周赛总结

2023.12

周一 周二 周三 周四 周五 周六 周日
[12.2] 差分数组 [12.3] 滑动窗口
周赛

12.2

一维差分数组

1094.拼车

区域性数字的加减,判断总体是否合法

回忆一下二维差分数组

12.3

前缀和

1423.可获得的最大点数 难度分:1574

逆向思维:滑动窗口 灵神太秀了

最后会剩余n-k个元素,找到剩余和最小的就行了

正向思维:

答案等于如下结果的最大值:

前 k 个数的和。
前 k−1 个数以及后 1个数的和。
前 k−2个数以及后 2 个数的和。
……
前 2个数以及后 k−2个数的和。
前 1个数以及后 k−1个数的和。
后 k个数的和。

计算前 k 个数的和,记作 s。初始化答案 ans=s
i=1 开始枚举到 i=k
每次枚举,把 s增加 cardPoints[n−i]−cardPoints[k−i],然后更新 ans的最大值


330.按要求补齐数组 374周赛q2

总结原因:tle的原因主要是在表示、更新区间的时候太复杂了,用数组存储,set表示,太复杂

抓住精髓,

​ //初始时,假设可以得到[0, s]

​ //每次新添加一个数字x,就可以得到[x+ 0, x+ s]

​ //如果这个新区间 和 已经得到的可以连续上,那么就不用添加数字,否则就是填补上最小的数字s+1

​ //如果补充数字i的话,区间就可以得到[i, 2*i-1]