数独易语言源码
求解使用状态压缩+回溯。
状态压缩
使用 bitset<9> 来压缩存储每一行、每一列、每一个 3×3 宫格中 1-9 是否出现
这样每一个格子就可以计算出所有不能填的数字,然后得到所有能填的数字 getPossibleStatus()
填入数字和回溯时,只需要更新存储信息
每个格子在使用时,会根据存储信息重新计算能填的数字
回溯
每次都使用 getNext() 选择能填的数字最少的格子开始填,这样填错的概率最小,回溯次数也会变少
使用 fillNum() 在填入和回溯时负责更新存储信息
一旦全部填写成功,一路返回 true ,结束递归
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系贝贝进行处理。本站默认解压密码:www.hibbba.com