双指针做法
2026-04-13 20:05:44
发布于:北京
3阅读
0回复
0点赞
先建立一个b数组,把a数组排序,最后用双指针算出答案,上代码
#include <bits/stdc++.h>
using namespace std ;
const int N = 1e6 + 10 ;
int a[N] , b[N] ;
int main () {
int n ;
cin >> n ;
for(int i = 1 ; i <= n; i++) {
cin >> a[i] ;
b[i] = i ;
}
sort(a + 1 , a + 1 + n) ;
int l = 1 ;
int r = 1 ;
int ans = 0;
while(l <= n && r <= n) {
if(a[l] < b[r]) l++ ;
else {
ans++ ;
l++ ;
r++ ;
}
}
cout << ans ;
return 0 ;
}
这里空空如也

有帮助,赞一个