704. Binary Search (Solution || Leetcode easy || Java)

Palakkgoyal
2 min readOct 28, 2022

--

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:

  • 1 <= nums.length <= 104
  • -104 < nums[i], target < 104
  • All the integers in nums are unique.
  • nums is sorted in ascending order.

SOLUTION:

class Solution {
public int search(int[] nums, int target) {
int start = 0;
int end = nums.length — 1;

while(start <= end){
int mid = start + (end — start)/2;

if(nums[mid] == target){//if we found the target return mid that is the index of target
return mid;
}else if(nums[mid] > target){//if mid is greater than target it means that all the element after mid are greater than target hence we reduce the search space by moving end toward mid
end = mid — 1;
}else{
start = mid + 1;//if mid is less than target it means that all the elements before mid are less than target as the array is sored in ascending order so we move start toward mid
}
}

return -1;
}
}

TIME COMPLEXITY :- O(log(n))

SPACE COMPLEXITY :- O(1)

Thank you for reading. If you have any queries, please let me know in the comment section.

--

--

Palakkgoyal
Palakkgoyal

Written by Palakkgoyal

Solutions to all your coding related problems at one point. DSA question on daily basis and much more.

No responses yet