算法测试题(实心矩阵)

作者: MardaWang | 来源:发表于2017-03-06 13:35 被阅读115次

    前几天,收到一个面试题,发现某度、google等平台都没有合适的解答,我在这里把我的求解方法在这里展示一下,大家可以适当借鉴(蛮多判断可以适当的优化,大家可以自行处理)。

    有一个n*n的矩阵,矩阵由 "0"和"1"组成,写一个算法检测矩阵中的所有"1"组成的图形是一个实心的正方形,结果为true或者false。

    例如

    0 0 1 1

    0 0 1 1

    0 0 0 0

    0 0 0 0

    结果为true;


    1 1 1 1

    1 0 0 1

    1 0 0 1

    1 1 1 1

    结果为false;


    0 0 1 1

    0 0 1 1

    0 1 0 0

    0 0 0 0

    结果为false;


    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    结果为true

    解决思路:

              1.获取 1的总个数;

              2.根据1的个数对特殊情况判断(全0或者全1)

              3.获取第一个1往左1的个数和向下1的个数

              4.根据向右以及向下1的个数以及1的总数做最终判断

    代码展示:





    以上就是我给出的解决方案。

    第二种方案:http://www.jianshu.com/p/0edab75e1d16







    相关文章

      网友评论

      • Ruining101:666,压根没思路,我原来是假的程序猿
        MardaWang:http://www.jianshu.com/p/0edab75e1d16
        我给出了第二种思路,可以抽空看看,思路应该更简洁一些
      • 安祥:赞赞:+1::+1::+1:

      本文标题:算法测试题(实心矩阵)

      本文链接:https://www.haomeiwen.com/subject/eaoygttx.html