zoukankan      html  css  js  c++  java
  • 03-连连看-连通分析

    连通分为3中

    1.直连。

    分为两种情况,一种两者之间相邻。另一种是两者之间已经没有有效的Block

    2.一个折点

    将两个点视为一个矩形的对角顶点,另外一对对角顶点只要有一个符合直连的情况,则符合一个折点的连通条件

    3.两个折点

    从图中所示,可以将两个折点的问题变成一个折点的问题。

    即:

    将第一个选择点作为种子点,然后沿着4个方向,在棋盘中分别搜索。

    沿着一个方向,每次前进一步,判断是否为一个折点连通。如果是,则表明两个折点连通成立。当然在前进方向上如果遇到一个有效的Block,则该方向上搜索失败。

    而如果沿着一个方向一直到了边界,则越过边界,找到对应的另一个折点,判断折点和两一个选择点是否水平直通即可。

     

    该算法其实最重要的思路是,将复杂的问题,递归简化为简单的问题解答。

     

    总的来说,判断是否连通:

     
    源码下载地址:
     
     
     
     
     
  • 相关阅读:
    碰撞器与触发器[Unity]
    Mesh属性[Unity]
    4.3之后的PingPong效果实现
    windows reload()
    浏览器的内核
    redis 1
    oauth 2.0转
    java 散列
    js 事件详解 冒泡
    HttpURLConnection和HttpClient的区别2(转)
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/5181287.html
Copyright © 2011-2022 走看看