[问题] LC 505 the maze ii

楼主: sean72 (.)   2019-01-13 09:48:58
Leetcode 505. The Maze II 时间复杂度怎么计算?
这题锁上了。题目请见这篇:http://www.cnblogs.com/grandyang/p/6725380.html
https://paste.ubuntu.com/p/6rDhmhGsks/
用min heap 代替 queue实现最短路径
但是我不会估算时间复杂度
请大家解惑
我最早的想法:总共m*n个点,heap里面最多就是m*n个点,
所以每次弹出的复杂度就是log(m*n) 总共m*n个点,所以是m*n*log(m*n)
每次弹出之后有滚动,
那么就变成 m*n*log(m*n)*max(m,n)
leetcode solution 解答上写此方法的时间复杂度为 m*n*log(m*n)
那么每一个点弹出之后的滚动呢?
谢谢
作者: ThxThx (洗洗睡)   2019-01-13 11:13:00
你那样想不是最小的upper bound注意到每一个node不会再被塞进heap而且每次只更新上下左右四个点这是Dijkstra alg的精髓

Links booklink

Contact Us: admin [ a t ] ucptt.com