二分的几个模板
模板一: 找到x最開始的下標
while(l<r) {int mid=l+r>>1;if(a[mid]>=x) r=mid;else l=mid+1; }模板二: 找到x最末尾的下標
while(l<r) {int mid=l+r+1>>1;if(a[mid]<=x) l=mid;else r=mid-1; }模板三: 找到嚴格大于x的下標
while(l<=r) {int mid=l+r>>1;if(a[mid]>x) r=mid-1;else l=mid+1; }總結
- 上一篇: 1074 Reversing Linke
- 下一篇: 1075 PAT Judge (25 分