Weekly Contest 434
Q1 不会
Q2 3433. Count Mentions Per User
思路:
把event按照timestamp的顺序排列,如果timestamp相同OFFLINE要先处理
用onlineTimeOfUser来记录每个user要过哪个时间后才会上线
接着就照每个event去处理并且记录每个user被提到几次
Q3 3434. Maximum Frequency After Subarray Operation
先简化问题
如果我们想知道把nums中某个subarray的a变k后,可以得到最多几个k?
对于上面的问题
首先计算nums里k出现的次数 : k_cnt
用一个delta来记录a跟k出现次数的差值
当出现a : delta + 1 、 出现k : delta - 1
min_delta : 纪录最小的delta值
max_delta : 记录某个区间内最大的delta值
max_delta = max(delta - min_delta, maxdelta)
然后答案就会是 k_cnt + max_delta
接着把a从1~50都做一遍,最大的那个就是答案
golang code :
func maxFrequency(nums []int, k int) int {
k_cnt, ans := 0, 0
for _, val := range nums {
if val == k {
k_cnt++
}
}
ans = k_cnt
for i := 0; i < 51; i++ {
if i != k {
delta, min_delta, max_delta := 0, 0, 0
for _, val := range nums {
if val == k {
delta