题目
思路
排序后进行遍历即可。
代码
#include<iostream>
#include<stdio.h>
using namespace std;
#define N 1010
int arr[N];
//排序算法:快排
void sort(int arr[],int start,int end){
if(start>=end){
return ;
}
int temp=arr[start];
int i=start,j=end;
while(i<j){
while(i<j && temp<=arr[j]) j--;
arr[i]=arr[j];
while(i<j && temp>=arr[i]) i++;
arr[j]=arr[i];
}
arr[i]=temp;
sort(arr,start,i-1);
sort(arr,i+1,end);
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
sort(arr,0,n-1);
int result=0;
for(int i=1;i<n;i++){
if(arr[i]-arr[i-1]==1){
result++;
}
}
printf("%d",result);
return 0;
}