题目描写叙述
在一个递增的序列里,查找元素是否存在。若存在输出YES,不存在输出NO.
输入
本题多组数据,首先输入一个数字n(n>=100000)。然后输入n个数。数据保证数列递增。然后再输入一个查找数字。
输出
若存在输出YES,不存在输出NO.
演示样例输入
4 1 3 5 8 3
演示样例输出
YES
#include<stdio.h> #include<string.h> #define N 100001 int a[N]; int main() { int n,m,i,low,high,mid; while(~scanf("%d",&n)) { for(i=0;i<=n-1;i++) { scanf("%d",&a[i]); } scanf("%d",&m); int flag=1; low=0; high=n-1; while(low<high) { mid=(low+high)/2; if(m==a[mid]) { flag=0; break; } else if(m<a[mid]) { high=mid-1; } else { low=mid+1; } } if(flag==0) { printf("YES "); } else { printf("NO "); } } return 0; }