数据类型 | 数据范围 | 数量级 |
---|---|---|
unsigned int | 0~42 9496 7295 | 42亿 10位 |
int | -21 4748 3648~21 4748 3647 | 2 ∗ 1 0 9 2*10^9 2∗109 |
unsigned long | 0~42 9496 7295 | 42亿 10位 |
long (32位系统) | -21 4748 3648~21 4748 3647 | 21亿 |
long long的最小值 | -922 3372 0368 5477 5808 | 19位 |
long long 的最大值 | 922 3372 0368 5477 5807 | 9 ∗ 1 0 18 9*10^{18} 9∗1018 |
unsigned long long | 0~1844 6744 0737 0955 1615 | 20位 |
float(浮点型) | 3.402823E-38~3.402823E+38 | 38位 |
double(浮点型) | 1.79769313486232E-308 ~1.79769313486232E+308 | 308位 |
long long内的最大阶乘
20
!
20!
20!
int内的最大阶乘
12
!
12!
12!
long和int的大小跟系统位数有关
- 16位系统:long是4字节,int是2字节
- 32位系统:long是4字节,int是4字节
- 64位系统:long是8字节,int是4字节
时间复杂度 > 空间复杂度
-
申请25万大小的vector型数组大约需要1MB内存
-
具有4GB内存的电脑可以开 1 0 9 10^9 109的int型数组
-
C++ 1秒内一般能算 1 0 7 10^7 107到 1 0 8 10^8 108(比较紧)
时间复杂度一般是 1 0 7 10^7 107比较稳,有的时候能到 1 0 8 10^8 108次,但时间就会比较紧,题目如果放宽到2ms,可能可以将将好能AC [1] 11:44 [2] -
一般情况下时间复杂度比空间复杂度更加重要
memset常用赋值
头文件 <cstring>
memset(f, 0, sizeof(f));
- 0
- -1
- 0x3f(正无穷 1,061,109,567)
- -0x3f(负无穷 -1,044,266,559)但不等于 -0x3f3f3f3f(坑点)
其他小常识
int: -
2
31
2^{31}
231 ~
2
31
2^{31}
231- 1
2
∗
1
0
9
2*10^9
2∗109
long long: -
2
63
2^{63}
263 ~
2
63
2^{63}
263- 1
9
∗
1
0
18
9 * 10 ^ {18}
9∗1018
l
o
g
1
0
n
≈
4
n
log 10^n\approx4n
log10n≈4n
l
o
g
1
0
6
≈
24
log 10^6\approx24
log106≈24
∇ \nabla ∇ 互联网笔试题通常的限制

- 时间限制1秒:说明时间复杂度一个在 1 0 7 10^7 107左右
- 空间限制32768K = 32 MB:说明可以申请800万左右的vector型数组
注意:上面说的是vector型数组,如果是普通数组int array[N],基本上可以开到很大很大,因为vector是动态开数组,STL容器一般都是比较花时间的,所以能用数组模拟尽量用数组
用牛客网进行测试,结果如下:


2021/5/1更新:空间复杂度分析详见:传送门,设计操作系统优化等