1391. 检查网格中是否存在有效路径;2502. 设计内存分配器;1638. 统计只差一个字符的子串数目

核心思想:并查集。枚举网格中的块,把能连通的连通在一起,最后看(0,0)和(m-1,n-1)是否连通,然后网格中的每个点坐标是二维的,然后通过x*n+y转换为一维,具体的细节看代码,还是比较不好写的。

1391. 检查网格中是否存在有效路径;2502. 设计内存分配器;1638. 统计只差一个字符的子串数目_第1张图片

 2502. 设计内存分配器

核心思想:因为数据范围只有1000,并且只调用了1000次,所以只用枚举即可,最复杂的功能是allocate的实现,这里我们用一个cnt来统计是否够连续的内存。

1391. 检查网格中是否存在有效路径;2502. 设计内存分配器;1638. 统计只差一个字符的子串数目_第2张图片

 1638. 统计只差一个字符的子串数目

核心思想:因为数据范围比较小,所以直接枚举s字符串的左端点和t字符串的左端点。相当于直接比较s的字符子串和t的字符子串是否合格,怎么判断合格。我们用一个diff来记录当前字符串不同的字符个数,如果等于一答案就加一,如果超过一就直接统计t的下一个字串,这题代码很巧妙,思想就是一个个比较s字串和t字串。

1391. 检查网格中是否存在有效路径;2502. 设计内存分配器;1638. 统计只差一个字符的子串数目_第3张图片

 

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