题解 | #二分查找-I#

二分查找-I

https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

方法思想:根据二分法,设置首指针和尾指针,中间指针mid=L+((R-L)>>1),以及二分法最大遍历次数log2(总个数),来获取你要找的值的位置
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param target int整型 
     * @return int整型
     */
    int search(vector<int>& nums, int target) {
        int n=nums.size();
      int L=0;
      int R=n-1;
      for(int i=0;i<=log2(n);i++)
      {
        int mid=L+((R-L)>>1);
        if(nums[mid]>target)
        {
            R=mid;
        }
        else if(nums[mid]<target)
        {
            L=mid+1;
        }
        else {
        return mid;
        }
      }
      return -1;
    }
};

全部评论

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务