第1题
代码
"""
根据a的ascii码值是97 奇数
黑色的规律是:
a1是 97 + 1 = 偶数
b2 是 98 + 2 =偶数
c1 是99 +1 = 偶数
d2 是100 + 2 = 偶数
...
所以,偶数为黑色
===
白色的规律
a2 = 97 +2 = 奇数
b1 = 98 +1 = 奇数
....
所以,奇数为白色"""
class Solution:def checkTwoChessboards(self, c1: str, c2: str) -> bool:a = (ord(c1[0]) + ord(c1[1])) % 2 # 取余数 如果是0说明是黑色b = (ord(c2[0]) + ord(c2[1])) % 2 # 如果一样的话,奇偶是一样的# 黑:黑 = 0:0# 白:白 = 1:1# 黑:白 = 1:0 or 0:1return a == b
截图:
总结:
- 学会用ord转换为ascii码来计算
第2题
代码
class Solution:def resultsArray(self, queries: List[List[int]], k: int) -> List[int]:ans = [-1] * len(queries)h = []for i, (x, y) in enumerate(queries):heappush(h, -abs(x) - abs(y)) # 加负号变成最大堆if len(h) > k:heappop(h)if len(h) == k:ans[i] = -h[0]return ans
总结:
- 学会最大堆
第3题
跳过
第4题
跳过
题目跳转:
https://leetcode.cn/contest/weekly-contest-413/
参考资料:
灵山b站