题目链接:https://www.lanqiao.cn/problems/1458/learning/?page=1&first_category_id=1&sort=students_count&name=%E5%8F%8C%E5%90%91%E6%8E%92%E5%BA%8F
怎么改可以使时间复杂度更低呢,这里只有一个for循环,是不是sorted影响了复杂度,是一个双循环?
谢谢。
n,m=map(int,input().split())
l=list(range(1,n+1))
def f(p,q):
if p==0:
l[:q]=sorted(l[:q],reverse=True)
if p==1:
l[q-1:]=sorted(l[q-1:])
for _ in range(m):
p,q=map(int,input().split())
f(p,q)
print(*l)
我的双向排序原理是一趟循环中整理最大和最小数据在数组头尾的算法这样就可以用1/4的N*N时间复杂度完成即降低了时间复杂度;
不过近来发现本论坛对于发布时间规则有变化,原本会显示正确的保存博客日期和时间未发布的,现在变为不显示保存的时间而是显示发布时间,我通常不会马上写好博客就发布而是会等待一段时间再有选择地发布博客,这样就不符合我最初写博客的日期和时间了,因此,建议论坛要保留写博客日期时间和发布日期时间.
早在2017-6-10发布博客https://blog.csdn.net/xianfajushi/article/details/72974625?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167875912016782425167275%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167875912016782425167275&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-72974625-null-null.article_score_rank_blog&utm_term=%E5%8F%8C%E5%90%91&spm=1018.2226.3001.4450
用动态规划代替死算,你这样肯定超时了。