[闲聊] LeetCode Biweekly Contest 100

楼主: fxfxxxfxx (爱丽丝)   2023-03-19 00:00:16
第一题是哪个白痴出的 = =
我在那看老半天受不了搬到最后再写
https://i.imgur.com/r3oOZsZ.png
没有 hard 的话没进 30 分排名就不会好看
1. Distribute Money to Maximum Children
条件有够多,当你在写作文吗 = =
比较重要的观察是当剩下的人数 >= 2 时,一定可以弄成所有人都不是 4 的情况
所以只有 money < children 会失败
然后注意
1) money 超过 children * 8 答案是 children - 1
2) money == (children - 1) * 8 + 4 时只能 children - 2
3) 其他情况都能 (money - children) / 7
2. Maximize Greatness of an Array
Two-pointer.
首先,考虑最小的那个数,假如是 nums[i]
则这个最小的数一定可以是最佳解(或是答案是 0)
因为不是的话和随便一个 perm[j] > nums[j] 互换
因为 perm[j] > nums[j] >= nums[i] 所以还是最佳解
接着考虑大于 nums[i] 里最小的那一个
他作为 perm[i] 也要是最佳解
同样如果不是的话就互换,依然都会是合法的
所以只要先 sort 完之后
再用 two-pointer 对所有 i 以尽量小的 j > i 使 nums[j] > nums[i] 即可
注意配对过的不能重复用
3. Find Score of an Array After Marking All Elements
用 set S 存所有的 pair<int,int>{nums[i], i}
则 S.begin() 就是最小的那一个
接着把 {nums[i+1], i+1} 和 {nums[i-1], i-1} 也 erase 掉就好
4. Minimum Time to Repair Cars
标准的二分搜
只要写出给定时间 t 时能不能造出 >= cars
然后对 t 做二分搜就好,因为 t 能的话 t + 1 也一定能
好像想不太到二分搜以外的作法
作者: NTHUlagka (拉卡)   2023-03-19 00:01:00
心态有点炸 第一题吃太多penalty 哭了
作者: shiliuye (十六)   2023-03-19 00:55:00
宝很厉害了

Links booklink

Contact Us: admin [ a t ] ucptt.com