day30.

332.重新安排行程

比起每一次找下一站的那一层一张一张票找==>直接一个map记录所有图的出发和到达每一层直接根据出发一步找到可能的到达,

unordered_map<string, map<string, int>> targets;

<出发string,map<到达string,剩余票数int>>,

同时这个map是直接按字母顺序排列的!

for (pair<const string, int>& target : targets[result[result.size() - 1]])

是直接按字母顺序开始查找的!

所以回溯返回值是bool==>void遍历全部/bool找到一条直接一路true回来(因为已经是字母顺序了)

 51. N皇后

回溯的办法很好想,就是每加入一个皇后一层,就是如何去掉同行列斜的方法想不具体

1.行不用检查,每层回溯就放入一个

2.因为是从上往下放,只检查上方的列和左上右上的斜角就行了

37. 解数独

对于如何同时回溯九格和横竖不太确定了

填一个数一层,就是这么多层!

每一层找到最左最上的空位填数==>每层试九种可能

判断是否合法!就是暴力寻找行/列/当前处于的九宫格 !!!

总结

树!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值