京东笔试编程题之消消乐

题目:有一个5*5的正方形网格,没个格子中有一个大于0且小于4的整数,对于一个确定的局面,若一个格子与它上下左右四个方向的某个格子(如果存在)数字相同,则称这两个格子是连通的,并且这种连通具有传递性。
每次,可以选择一个格子,若与这个格子连通的格子(包括自己)数大于等于3,你就可以选择消掉这个格子,与此同时,与这个格子连通的所有格子会一起消失。
如果仅仅是这样,那就太简单了,因为无论如何消除,最后的结果都是一样的,所以我们引入重力系统,每次选择消掉某个格子,并将与那个格子相连通的所有格子都消掉后将会有一些格子失去支撑,此时那些格子就会因重力而下落。
在这里插入图片描述
实现代码如下:

#广度优先搜索,队列实现
def findSame(arr, book, i, j, queue, front, rear, count):
    #保证当前点不为0
    if arr[i][j] == 0:
        return
    
    #当前节点入队
    queue.append([i, j])
    rear[0] = rear[0] + 1
    
    #队列不为空时
    while(front[0] != rear[0]):
        #先出队
     
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值