我试图回答一个关于kattis的竞争性编程问题,这个问题可以找到here我的算法是正确的,但是有一个测试用例有很多输入,我的代码超时了。在python中有没有更优化的IO方法?你知道吗
from sys import stdin, stdout
import atexit, io, sys
buffer = io.BytesIO()
sys.stdout = buffer
@atexit.register
def write():
sys.__stdout__.write(buffer.getvalue())
def main():
teque = []
for i in range(int(stdin.readline())):
l = stdin.readline().split()
if l[0] == 'push_back':
teque.append(int(l[1]))
if l[0] == 'push_front':
teque.insert(0, int(l[1]))
if l[0] == 'push_middle':
if len(teque)%2==0:
mid = len(teque)/2
else:
mid = (len(teque)+1)/2
teque.insert(int(mid), int(l[1]))
if l[0] == 'get':
stdout.write(str(teque[int(l[1])])+'\n')
if __name__ == "__main__":
main()
因此,正如我在评论中了解到的,实际上我并没有在O(1)时间内为insert编写程序,我修复了调用2个队列的问题。这个解决方案对于python3运行时仍然不够快,但是它通过了python2运行时。你知道吗
相关问题 更多 >
编程相关推荐