以下是以动态规划算法状态压缩法为基础进行。
以以上4个城市为例,形成一张二维矩阵表
状态压缩法使用二进制记录经过城市节点的距离,以以上4个城市为例,下面是4*7的DP数组
推而广之,n个城市下,城市距离二维矩阵表空间复杂度是n*n,计算过程DP表空间复杂度
优化点
百度搜索结果:全北京超市总数:60218个,就近选择100个超市送货,DP表空间复杂度就是
100个超市中很多都不是直接可达的,造成空间浪费
整型数组的大小受限于开发语言和操作系统
Java语言整型数组上限为225 * 225 ,即26个超市
所以使用HASH表来代替计算过程二维表
KEY=总坐标,横坐标
VALUE=DP表对应值
结果
可计算城市节点数不受语言和操作系统限制
节省了存储空间
单系统存取情况下,HASH比数组效率低