【发布时间】:2018-11-28 09:43:48
【问题描述】:
我有以下二维数组:
int[][] array = new int[][]{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0}
};
我想修剪所有周围的零,所以我的输出将是这样的(删除外部的“零”并保留被“一”包围的零):
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 0},
{0, 1, 1, 1, 1},
{0, 1, 1, 1, 1},
{0, 0, 0, 1, 0}
我正在寻找一种有效的方法。
【问题讨论】:
-
你有没有尝试过?
-
与其查看周围的零或一,您的算法似乎在于删除所有项目总和为 0 的所有行和列。
-
@assylias 或者只有当他们排在第一个或最后一个。
-
@OleV.V.应该删除第一列和最后两列,所以...也许这是
first and last N技巧,或者也许是总和:)
标签: java arrays algorithm multidimensional-array