为什么以下陈述是等价的?emptyRow 和 emptyCol 是整数堆栈,而 Grid 是一个二维整数数组。你不需要知道程序做什么,但如果你想知道它是一个使用基本回溯的数独解谜算法。
这两个语句都允许程序在没有任何错误的情况下运行,但我不明白这是怎么可能的,因为 .pop() 在第一个实现中返回最顶层的整数,而第二个语句首先弹出最顶层的项目并检索整数直接在那些之下。
声明 A:
Grid[emptyRow.pop()][emptyCol.pop()] = 0;
声明 B:
emptyRow.pop();
emptyCol.pop();
Grid[emptyRow.peek()][emptyCol.peek()] = 0;
抱歉,如果这是我的代码的一个愚蠢的逻辑问题,我只是在检查是否有一些我不知道堆栈操作如何工作的东西。