#include iostream#include vector#include timehusing namespace std;int question1010; 题目给出信息 int rowmark1010; 行数据标签 标志第n行 数字m是否存在 int colmark1010; 列数据标签 int blockmark1010; 块数据标签 int row10col10block10;cl
时间复杂度:
- 对于每个空白格子,都需要尝试填入1到9的数字,所以backtrack函数的时间复杂度为O(9^n),其中n是空白格子的数量。
- setmark函数的时间复杂度为O(1),因为只需要修改标签数组。
- printboard函数的时间复杂度为O(81),因为需要遍历整个数独棋盘。
- Clear函数的时间复杂度为O(100),因为需要遍历整个标签数组和数独棋盘。
- main函数的时间复杂度为O(count * 81 * 9^n),其中count是测试用例的数量。
空间复杂度:
- 数独棋盘和标签数组都需要O(81)的空间。
- tofill数组最多存储81个空白格子的位置,所以需要O(81)的空间。
- 其他变量需要常数级的空间。
- 总的空间复杂度为O(81 + 81 + 81 + 81 + 1) = O(324)。
原文地址: https://www.cveoy.top/t/topic/hRTZ 著作权归作者所有。请勿转载和采集!