题解 | 二分查找-I
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] nums, int target) { // write code here int left = 0, right = nums.length-1; if (nums.length==0){ return -1; } int mid= 0; int index; while (left <= right) { mid = (left + right) / 2; if (target < nums[mid]) { right = mid -1; } else if (target > nums[mid]) { left = mid + 1; } else { return mid; } } return -1; } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param target int整型 * @return int整型 */ public int binary(int[] nums,int left,int right,int target){ if (left>right){ return -1; } int mid = (left+right)/2; if (target<nums[mid]){ return binary(nums,left,mid-1,target); }else if(target>nums[mid]){ return binary(nums,mid+1,right,target); }else{ return mid; } } public int search (int[] nums, int target) { // write code here return binary(nums,0,nums.length-1,target); } }