这样好像更好懂一些,有错误请不吝指教
#include<iostream>
#include <algorithm>
using namespace std;
bool is_ordered(int list[], int n){
if(list == NULL || n < 0){
return false;
}
sort(list, list+n);
for(int i = 0; i< 5; ++i){
cout << list[i] << " ";
}
cout << endl;
int zero_nums = 0;
int need_zero_nums = 0;
for(int i = 0; i < n; ++i){
//统计0 的个数
if(list[i] == 0){
zero_nums += 1;
continue;
}
if(i+1 < n){
//对子也算合法的话
if(list[i+1] != list[i]){
need_zero_nums += list[i+1] - list[i] - 1;
}
}
}
cout << "zero:"<< zero_nums << " need_zero:"<< need_zero_nums << endl;
return zero_nums >= need_zero_nums? true:false;
}
int main(){
int list[5] = {1,8,3,0,0};
bool ret = is_ordered(list, 5);
cout << ret << endl;
return 0;
}