leetcode 常用的工具函数及技巧

文章目录

    • 常用类型
      • list
      • set
    • leetcode 常用方法
      • 状态压缩
      • 数组
        • 棋盘方向

常用类型

list

  • 删除指定元素

    .remove(item)
    

    若列表内有多个 item,则只删除一个item

set

  • 初始化
    s = set()
  • 包含某个元素
    a in s
  • 删除某个元素
    1. remove(item) 若set 不包含 item,删除会报错
    2. discard(item) 若set 不包含 item,删除不报错
  • 合并
    s1.update(s2)
  • & 交集; | 并集;

leetcode 常用方法

状态压缩

  • 全集

    1 << n - 1
    

s 表示状态
x 表示选取第几个元素,从 0开始

  • add or del
    def set_add_del(s, x):
    	return s ^ (1 << x)
    
  • contain
    def set_contain(s, x):
    	return s >> x & 1
    

数组

棋盘方向

  • 越界检测

    def check(x, y):
        if x < 0 or x >= n or y < 0 or y >= m:
            return False
        return True
    
  • 8 个方向数组

    directions = [
                (0, 1), (0, -1),
                (1, 0), (-1, 0),
                (1, 1), (-1, -1),
                (-1, 1), (1, -1)
            ]
    
  • 双重for循环

    for i in range(-1,2):
        for j in range(-1,2):
            if i == 0 and j == 0:
                continue
    

你可能感兴趣的:(leetcode,leetcode,算法)