【发布时间】:2020-09-15 16:28:39
【问题描述】:
我有一个输入测试文件
10000000
1 23 53 64 599 -645 746 84 944 10 ..(10000000 integers)
我用来输入的python3代码如下
t = int(input())
a = [int(i) for i in input().split()]
由于第 2 行太大,我的程序需要大量 RAM(短时间间隔
int a;
cin >> a;
bitset<10000000> visited;
while (a--)
{
int x;
scanf("%d",&x);
visited[x] = true;
}
仅使用 7MB。有什么办法可以减少这种情况吗?获取整数输入而不立即将整个字符串加载到内存中(如部分加载字符串)?
【问题讨论】:
-
当然可以。标准输入流为
sys.stdin;您可以从中读取字符,例如.read(64)一次读取 64 个字符(或二进制流的字节)。 -
link 这会帮助你!
-
有没有办法读取一定数量的整数?这可能会在中途读取一个整数
-
@Snowfox 您也可以使用
.read(1)一次只读取一个字节,但效率会降低。
标签: python python-3.x