周赛413场 个人总结

第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:1
        
        return 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

总结:

  • 学会最大堆(本题需要维护一个数组结构,前k项,每次都可以弹出最大值)
  • 学会enumerate遍历方式

第3题 

跳过

第4题 

跳过

题目跳转:

https://leetcode.cn/contest/weekly-contest-413/

参考资料:

灵山b站

posted @ 2024-09-02 12:52  o蹲蹲o  阅读(5)  评论(0编辑  收藏  举报