题解 | 线段重合 (C++ 差分写法 O(n))
线段重合
https://www.nowcoder.com/practice/1ae8d0b6bb4e4bcdbf64ec491f63fc37
#include <bits/stdc++.h> #include <cstdio> using namespace std; int res[100005]; int n; int a,b; int main() { int ans = 0; scanf("%d",&n); for(int i = 0; i < n; i++) { scanf("%d %d",&a,&b); res[a ]+= 1; res[b] -= 1; } for(int i = 1; i < 10001; i++) { res[i] += res[i-1]; ans = max(ans, res[i]); } printf("%d",ans); } // 64 位输出请用 printf("%lld")
分享一个差分的写法