摘要:
解题思路: 1、单调栈:因为是循环数组,因此把数组复制三遍,ans 数组复制为2倍长,维护一个单调非递增的栈,栈保存的元素是元组(a[i] , i ),如果后面的值有比栈顶元素的值大,栈顶元素出栈,更新ans[i]的值为让其出栈的值,最后返回ans数组的一半,即最终答案。 2、线段树:数组复制两遍, 阅读全文
摘要:
在刷题的时候,经常碰到需要生成非常大的邻接矩阵,往往我们都是用 list 存储,但是我在最近刷题的过程中就遇上了TLE的情况,原因就是生成邻接矩阵时间太花时间了。 先说结论:[ ]* n 比 [ for i in range(n) ]列表生成式的速度快,差不多快3倍多 尽量使用邻接表代替邻接矩阵。比 阅读全文