LeetCode704 二分查找
Posted __rookie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode704 二分查找相关的知识,希望对你有一定的参考价值。
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
基础的二分查找,唯一需要注意的就是移位运算的优先级很低,需要加括号。
1 class Solution { 2 public: 3 int search(vector<int>& nums, int target) { 4 return recursive(nums,0,nums.size()-1,target); 5 } 6 7 int recursive(vector<int>& nums, int start, int end, int target){ 8 if(start>end) 9 return -1; 10 int mid=start+((end-start)>>1); 11 if(nums[mid]==target) 12 return mid; 13 else if(nums[mid]>target) 14 return recursive(nums,start,mid-1,target); 15 else 16 return recursive(nums,mid+1,end,target); 17 } 18 19 };
以上是关于LeetCode704 二分查找的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode第3天 - 704. 二分查找 | 35. 搜索插入位置