二分查找,但是数组没有排序,问你仍然可以通过二分查找找到的数有多少个。可以模拟一下得到结果。另外,若一定可以找到,那么这个数左边的数一定比它小,右边的数一定比它大,找一下这样的数有多少个也可以。
Run Time: 0sec
Run Memory: 312KB
Code length: 704Bytes
SubmitTime: 2012-01-07 16:49:24
// Problem#: 1641
// Submission#: 998665
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int length;
int data[ 100 ];
int i, j;
int count;
while ( cin >> length ) {
for ( i = 0; i < length; i++ )
cin >> data[ i ];
count = 0;
for ( i = 0; i < length; i++ ) {
for ( j = 1; i - j >= 0 || i + j < length; j++ ) {
if ( i - j >= 0 && data[ i - j ] >= data[ i ] )
break;
if ( i + j < length && data[ i + j ] < data[ i ] )
break;
}
if ( i - j < 0 && i + j >= length )
count++;
}
cout << count << endl;
}
return 0;
}