二维表的遍历一般需要两重循环来实现,但是两重循环的代码不如一重循环的代码清爽,很多情况下用一重循环遍历二维表也是一种不错的选择。用一重循环遍历二维表关键是对下标的处理,对于一个M×N的二维表,可用以下方法解出对应的二维下标:
int row = i / M
int col = i % N
反过来,也可以用以下公式将二维坐标还原为一位坐标:
int i = row * N + col
转载自王晓华的《算法的乐趣》第396页
二维表的遍历一般需要两重循环来实现,但是两重循环的代码不如一重循环的代码清爽,很多情况下用一重循环遍历二维表也是一种不错的选择。用一重循环遍历二维表关键是对下标的处理,对于一个M×N的二维表,可用以下方法解出对应的二维下标:
int row = i / M
int col = i % N
反过来,也可以用以下公式将二维坐标还原为一位坐标:
int i = row * N + col
转载自王晓华的《算法的乐趣》第396页