按行删除二进制数组中的连通组件的高效算法
创始人
2024-08-22 05:30:09
0

算法思路:

  1. 定义一个指针p指向当前行的第一个元素
  2. 对于每一行,循环扫描该行的所有元素
  3. 如果当前元素为1,则对其进行标记
  4. 若当前元素的左边或上边或右上角或左上角有被标记的1,则将当前元素也标记为1
  5. 如果当前元素和它的相邻部分已经标记为1,则将它们变成0,从而在数组中删除一个连通组件
  6. 继续扫描下一个元素

代码示例:

# 定义一个指针p指向当前行的第一个元素
p = 0
# 循环扫描每一行
for i in range(rows):
    # 循环扫描该行的所有元素
    for j in range(cols):
        # 如果当前元素为1,则对其进行标记
        if arr[i][j] == 1:
            arr[i][j] = 2
            # 如果当前元素的左边或上边或右上角或左上角有被标记的1,则将当前元素也标记为1
            if i > 0 and arr[i-1][j] > 1:
                arr[i][j] = arr[i-1][j]
            if j > 0 and arr[i][j-1] > 1:
                arr[i][j] = arr[i][j-1]
            if i > 0 and j > 0 and arr[i-1][j-1] > 1:
                arr[i][j] = arr[i-1][j-1]
            if i > 0 and j < cols - 1 and arr[i-1][j+1] > 1:
                arr[i][j] = arr[i-1][j+1]
            # 如果当前元素和它的相邻部分已经

相关内容

热门资讯

截至发稿"wepok... 截至发稿"wepoker破解游戏盒子"wepoker脚本(果然是真的辅助app)-哔哩哔哩所有人都在...
于此同时"poker... 于此同时"poker辅助器免费安装"aapoker安装包怎么使用(确实存在有辅助插件)-哔哩哔哩1、...
透视有挂"竞技联盟辅... 透视有挂"竞技联盟辅助"wepoker怎么看底牌(本来真的有辅助下载)-哔哩哔哩1、wepoker怎...
此事引发广泛关注"w... 此事引发广泛关注"wepoker软件辅助程序"we-poker是什么软件(一贯有辅助平台)-哔哩哔哩...
于此同时"德扑圈透视... 于此同时"德扑圈透视挂"wepoker轻量版书签(一直存在有辅助软件)-哔哩哔哩1、于此同时"德扑圈...
近期"wepoker... 近期"wepoker辅助器官方"wpk官网下载链接(切实存在有辅助插件)-哔哩哔哩wepoker辅助...
据文件显示"wepo... 据文件显示"wepoker透视脚本免费下载pc"epoker透视(本来真的有辅助安装)-哔哩哔哩we...
透视神器"wepok... 透视神器"wepoker私人局辅助挂"wepoker可以透视码(果然真的是有辅助插件)-哔哩哔哩;1...
目前"wepoker... 目前"wepoker黑侠辅助器正版下载"wejoker辅助器要钱玩吗(原来是真的辅助软件)-哔哩哔哩...
透视实锤"sohoo... 透视实锤"sohoo poker辅助器"哈糖大菠萝助手(一贯真的是有辅助插件)-哔哩哔哩哈糖大菠萝助...