按行删除二进制数组中的连通组件的高效算法
创始人
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]
            # 如果当前元素和它的相邻部分已经

相关内容

热门资讯

今日重大通报!青橙竞技游戏辅助... 您好,青橙竞技游戏辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
如何分辨真伪!蜀门手游辅助免费... 如何分辨真伪!蜀门手游辅助免费脚本(辅助挂)德州之星扫描器(确实存在有挂);1、完成蜀门手游辅助免费...
重大通报!哥哥打大a辅助工具靠... 重大通报!哥哥打大a辅助工具靠谱嘛(辅助挂)wepoker俱乐部辅助(好像是真的有挂)是一款可以让一...
玩家必备科技!欢乐茶馆辅助(辅... 玩家必备科技!欢乐茶馆辅助(辅助挂)hhpoker德州透视(原本是有挂)是一款可以让一直输的玩家,快...
玩家必看!开心泉州小程序辅助免... 玩家必看!开心泉州小程序辅助免费下载(辅助挂)wepoker辅助器下载(素来真的是有挂)是一款可以让...
玩家必看科普!途游游戏辅助脚本... 玩家必看科普!途游游戏辅助脚本(辅助挂)wepoker透视脚本免费使用视频(本然真的是有挂)是一款可...
玩家必备教程!爱玩联盟脚本(辅... 玩家必备教程!爱玩联盟脚本(辅助挂)如何判断wpk辅助软件的真假(原本真的有挂);爱玩联盟脚本简单的...
攻略讲解!微信小程序微乐家乡辅... 攻略讲解!微信小程序微乐家乡辅助器(辅助挂)hhpoker是正规的吗(真是真的有挂);微信小程序微乐...
今日头条!八闽福建辅助(辅助挂... 今日头条!八闽福建辅助(辅助挂)购买的wpk辅助在哪里下载(切实是有挂);1、玩家可以在八闽福建辅助...
来一盘!天天川南悠闲辅助(辅助... 来一盘!天天川南悠闲辅助(辅助挂)wepoker私人局有透视吗(原生是有挂);天天川南悠闲辅助辅助器...