332.重新安排行程
此题思路较为清晰,利用哈希+数组存储每个起始地所拥有的机票(即能飞的地方),然后将每个数组都按照字典序排序,最后直接贪心地回溯,就能得到字典序最前面的飞行顺序。
一刷疑惑的点:我采用的方法并非代码随想录中的defaultdict(dict)(可以直接给予未知key一个默认值的字典,此处默认值为空的列表),而是一种哈希+数组,其中哈希保存钥匙(每个起飞地存储到达地的数组的下标),数组保存到达地,即使我将其他代码调整的几乎一样,但我的方法还是存在答案错误的情况,其中最大的疑点,就是来自数组的弹出与回收。
51. N皇后
思路与随想录相同,但在判断条件以及函数设置上栽了跟头,原为了节约空间,只用了一维数组进行函数传递,但在判断条件上越写越复杂,后来看完解析才发现二维数组能进行轻松的判断,确实是钻进了牛角尖。
37. 解数独
非常有趣的一道题,解法上有思路但越发复杂,看完解析后恍然大悟,判断方式与N皇后类似。而我直接希望通过三个方式直接找到唯一存在的值,对用例要求太高了(玩笑话),随想录中对每个符合条件的值进行回溯让我大开眼界,此题值得多刷几次。
回溯总结:
当初充满随机性的回溯题目在随想录下,竟然变得有迹可循,有路可套,这个模板虽然简单,但只有多多运用,才能真正掌握,回溯难题,值得二刷!