小编Le_*_*Ruf的帖子

在二进制矩阵中找到最大的X形

我最近对一家公司进行了技术测试,我认为他们在识别二进制矩阵中的形状时遇到了一个非常有趣的问题。

练习的目的是创建一种算法,该算法可以在二进制矩阵中找到最大的X形状,并返回其长度。X是以这种方式定义的:-AX由长度相等的两个对角线组成,它们共享一个唯一的点。例如 :

101
010
101
Run Code Online (Sandbox Code Playgroud)

包含长度为3的有效X,因此算法将返回3。

1001
0110
0110
1001
Run Code Online (Sandbox Code Playgroud)

不包含任何有效的X,因此算法将返回1,因为1长度的X是单个1。

我设法进行了练习,但是我实现了一个非常凌乱的算法,其时间复杂度估计为O(n3),这很糟糕,不适用于非常大的矩阵。这种复杂性的很大一部分是我用来遍历矩阵的double for循环。

我可以做些什么来制作更简洁的算法?我出于个人兴趣提出问题,并且需要提高我的技能和实践思维。

algorithm matrix

5
推荐指数
1
解决办法
639
查看次数

标签 统计

algorithm ×1

matrix ×1