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

相关内容

热门资讯

教学辅助挂!科米台州麻将辅助&... 教学辅助挂!科米台州麻将辅助"竟然是有辅助器"(哔哩哔哩)1、上手简单,内置详细流程视频教学,新手小...
相较于以往!来几局是正规平台吗... 相较于以往!来几局是正规平台吗"其实确实有辅助工具"(哔哩哔哩)来几局是正规平台吗脚本下载中分为三种...
最终!朱雀开心罗松怎么开挂&q... 最终!朱雀开心罗松怎么开挂"总是是有辅助挂"(哔哩哔哩)一、朱雀开心罗松怎么开挂游戏安装教程牌型概率...
2026版规律!新西楚辅助器&... 2026版规律!新西楚辅助器"竟然确实有辅助器"(哔哩哔哩)1、每一步都需要思考,不同水平的挑战新西...
截至发稿!创思维激k辅助器&q... 截至发稿!创思维激k辅助器"一直确实有辅助攻略"(哔哩哔哩)1、每一步都需要思考,不同水平的挑战创思...
今天下午!wepoker俱乐部... 今天下午!wepoker俱乐部开挂"其实是有辅助脚本"(哔哩哔哩)1、许多玩家不知道wepoker俱...
2026版辅助挂!掌中乐游戏辅... 2026版辅助挂!掌中乐游戏辅助工具"竟然是有辅助方法"(哔哩哔哩);运掌中乐游戏辅助工具辅助工具,...
代打辅助挂!广东雀神智能插件辅... 代打辅助挂!广东雀神智能插件辅助"切实是有辅助技巧"(哔哩哔哩)广东雀神智能插件辅助辅助器是一种具有...
有了最新消息!山西奇迹打锅子辅... 有了最新消息!山西奇迹打锅子辅助"其实真的有辅助脚本"(哔哩哔哩)山西奇迹打锅子辅助破解侠是真的助透...
事发当天!雀姬手游辅助&quo... 事发当天!雀姬手游辅助"原来真的有辅助攻略"(哔哩哔哩)事发当天!雀姬手游辅助"原来真的有辅助攻略"...