一句话理解
边界情况是最边上的数据:最小、最大、空、全相等。
为什么要学
很多 WA 不是普通数据错,而是 n=1、n=0、全是负数没处理。
讲解
每读到“(1 \le n \le 10^5)”,就立刻想:n=1 时我的循环还对吗?n 取最大时会不会慢、会不会爆内存?
常见边界:空区间、单元素、已经有序、全部相同、负数、零。
写完程序后,专门给这些数据跑一遍,比多看两眼代码更有效。
例子
求最大值。若 n=1,数组里只有一个数,它既是最大也是最小。若你一开始把 ans 设成 0,而那个数是 -5,就会错。
常见错误
- 把 ans 初始化成 0,却可能全是负数。
- 循环写成
i < n-1,n=1 时根本没处理。