Android面试经验Android面试知识点分享程序员

算法测试题(实心矩阵)

2017-03-06  本文已影响115人  MardaWang

前几天,收到一个面试题,发现某度、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







上一篇 下一篇

猜你喜欢

热点阅读