个人思路: 1.首先统计所有1的数量one_count,发现矩阵全部是1,直接返回矩阵size;全部是0,返回0 2.否则说明有士兵,也有空位可以供士兵移动。对每一个0,可以尝试把一个1换到这个位置,dfs搜索该区域,更新ans 3.如果最终ans比所有1的数量one_count还多1,说明填充的1是凭空填充的,填充后原来所有的1会联通。这时直接返回step1中统计的1的数量one_count,否则返回ans 结果:部分超时 原因分析:对于不同的0,可能连接了同一区域内不同位置的1,从而对同一区域进行了多次dfs搜索,产生了重复计算。参考别人的做法,可以对每块区域先记录连通数量,避免重复计算