Use binary search on sorted array: set mid = (low + high) // 2. If target == nums[mid] return mid; adjust search bounds accordingly.
class Solution:
def search(self, nums: list[int], target: int) -> int:
l, r = 0, len(nums) - 1
while l <= r:
m = (l + r) // 2
if nums[m] > target:
r = m - 1
elif nums[m] < target:
l = m + 1
else:
return m
return -1
class Solution {
public int search(int[] nums, int target) {
int l = 0, r = nums.length - 1;
while (l <= r) {
int m = l + (r - l) / 2;
if (nums[m] > target) r = m - 1;
else if (nums[m] < target) l = m + 1;
else return m;
}
return -1;
}
}