【发布时间】:2018-03-11 22:24:20
【问题描述】:
假设我们有一个名为 grid 的 8 x 8 2d 整数数组,并尝试在 [5][5] 处选择元素 0
int[][] grid = new int{{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,0,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1}};
现在的问题是,是否可以不使用坐标而只使用单个数字来访问元素 0 的索引?
示例:访问编号为 45 的元素 0,如一维数组
我尝试使用 for 循环来解决这个问题,但它给了我超出范围的错误。
int x = 0;
int y = 0;
for (int i = 0;i<45;i++) {
x += 1;
if (x > grid[y].length) {
x = 0;
y += 1;
}
上面的代码应该添加 x 和 y 直到它到达目标元素。
【问题讨论】:
-
应该是
if (x == grid[y].length)