← All problems

704. Binary Search

EasyOpen on LeetCodeProblem statement

Problem Statement

704. Binary Search

Easy


Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.

You must write an algorithm with O(log n) runtime complexity.

 

Example 1:

Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4

Example 2:

Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1

 

Constraints:

C++

Source file
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int lt=0, rt=nums.size()-1, mid;
        while(lt<rt){
            mid=lt+(rt-lt)/2;
            nums[mid]<target?lt=mid+1:rt=mid;
        }
        return nums[lt]==target?lt:-1;
    }
};