LC周赛记录

  1. 1. 第 320 场周赛 - 力扣(LeetCode)
    1. 1.1. 6242. 二叉搜索树最近节点查询 - 力扣(LeetCode)
  2. 2. 第 327 场周赛 - 力扣(LeetCode)
    1. 2.1. 6284. 使字符串总不同字符的数目相等 - 力扣(LeetCode)
  3. 3. 第 340 场周赛 - 力扣(LeetCode)
    1. 3.1. 2614. 对角线上的质数 - 力扣(LeetCode)
  4. 4. 第 342 场周赛 - 力扣(LeetCode)
    1. 4.1. 2653. 滑动子数组的美丽值 - 力扣(LeetCode)
  5. 5. 第 351 场周赛 - 力扣(LeetCode)

记录LC周赛问题

第 320 场周赛 - 力扣(LeetCode)

6242. 二叉搜索树最近节点查询 - 力扣(LeetCode)

问题:TLE
二叉搜索树不一定平衡:题目给出了二叉搜索树,但普通的二叉搜索树不一定是平衡的,当用例的二叉搜索树退化为链表时,时间会达到线性的时间复杂度,从而被卡掉。

第 327 场周赛 - 力扣(LeetCode)

6284. 使字符串总不同字符的数目相等 - 力扣(LeetCode)

问题:读题不仔细、简单的暴力想复杂
题目是要求能否两个单词中不同的字符数目是否能够相等,是字符去重后的个数是否相等。且题目说明了恰好移动一次,没有注意到该条件,以为可以移动多次。
如果只移动一次,则应该暴力求解,尝试每一种交换的可能,最多尝试26*26次(字母只有26个,且只交换一次),时间复杂度是可以满足的。(O(N) = max(26 * 26, max(len(word1), len(word2)))。

第 340 场周赛 - 力扣(LeetCode)

2614. 对角线上的质数 - 力扣(LeetCode)

使用了埃氏筛,筛选只需要一次即可,但是筛选写在了普通方法里面,导致每一次调用都会跑一遍埃氏筛,最终导致了超时。改成静态后通过。

第 342 场周赛 - 力扣(LeetCode)

2653. 滑动子数组的美丽值 - 力扣(LeetCode)

虽然nums.length=1e5,但是nums[i]的值域只有-50到50,使用桶排序(基数排序)即可满足,快排会导致时间复杂度超时。

第 351 场周赛 - 力扣(LeetCode)

6910. 将数组划分成若干好子数组的方式 - 力扣(LeetCode)

以后若是要求取余的题目,必须边计算边取余,不能只在最后一步取余,若是加法,直接取余到底即可,若是减法(可能减出负数),则需要加上取模同余定理。即若求(-x) % mod的余数,这里-x表示负数:

(x)%mod=(x%mod+mod)%mod(-x) \% mod = (-x \% mod + mod) \% mod

其他可能用到的,注意其中a+b、a*b为正数,否则需要使用上面的同余定理:

(a+b)%m=((a%m)+(b%m))%m(a+b)\%m=((a \% m)+(b \% m)) \% m

(ab)%m=((a%m)(b%m))%m(a*b)\%m=((a \% m)*(b \% m)) \% m