文章目录leetcode 704 二分查找
- 题目描述
- 一、示例
- 二、提示
- 三、代码及运行结果
- 代码
- 运行结果
题目描述
给定一个n个元素有序的(升序)整型数组nums 和一个目标值target,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1
一、示例
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
- 你可以假设 nums 中的所有元素是不重复的。
- n将在 [1, 10000]之间。
- nums 的每个元素都将在 [-9999, 9999]之间。
#include运行结果int search(int* nums,int size,int target); int main() { int num[10]={}; int i=0,j=0,S=0,K=0; printf("please input number!n"); for(i=0;i<10;i++) { scanf("%d",&num[i]); } for(j=0;j<10;j++) { printf("num is %dn",num[j]); } K=sizeof(num)/sizeof(int)-1; S=search(num,K,22); printf("K is %dn",K); if(S==-1) printf("sorry,the target is not in num "); else if(S==0) printf("error"); else printf("the target of num is %d",S); return 0; } int search(int* nums,int size,int target) { int left=0; int right=size; int mid=1; while(1) { if(nums[left]>nums[right]) return 0; if(target>nums[right]||target target) { right=mid-1; } else if(nums[mid] left=mid+1; } else if(nums[mid]=target) return nums[mid]; } }



