我正在用Java编写Sudoku代码。
我已经写了代码,但是切换了行而不是列!
int[] tempField = array2D[myFirstCol_toSwitch];
array2D[myFirstCol_toSwitch] = array2D[mySecondCol_toSwitch];
array2D[mySecondCol_toSwitch] = tempField;
为了生成数独板,我需要随机交换列。
最佳答案
二维Java数组的“行”和“列”取决于您的观点;即您如何在思维上将数组映射为垂直和水平方向。
但是,如果您当前在示例中所做的是切换“行”(根据您的思维模型),那么切换“列”的方法就是遍历各个元素。例如像这样的东西:
for (int i = 0; i < array2D; i++) {
int tempField = array2D[i][myFirstCol_toSwitch];
array2D[i][myFirstCol_toSwitch] = array2D[i][mySecondCol_toSwitch];
array2D[i][mySecondCol_toSwitch] = tempField;
}
这可以用(可以说)更整洁的其他方式来写。我选择这种方式是为了清楚地说明转置这两列实际上需要发生什么。