implSolution{pubfnsearch(nums:Vec<i32>,target:i32)->i32{letmutl:i32=0;letmutr:i32=(nums.len()-1)asi32;whilel<=r{letM=((l+r)/2)asusize;// Convert to usize for indexingiftarget==nums[M]{returnMasi32;}elseiftarget<nums[M]{r=Masi32-1;// Can be negative safely}else{l=Masi32+1;}}-1}}