二分法---力扣题目(简单题:35104)

    科技2025-05-26  8

    // c语言 int searchInsert(int* nums, int numsSize, int target){ if(numsSize == 0){ return 0; } int start = 0; int mid; int end = numsSize - 1; while(start + 1 < end){ mid = start + (end - start)/2; if(nums[mid] == target){ return mid; }else if(nums[mid] > target){ end = mid; }else{ start = mid; } } if(nums[start] == target|| nums[start] > target){ return start; }else if(nums[start] < target && nums[end] > target){ return end; }else if(nums[end] == target ){ return end; }else { if(end < numsSize){ return end + 1; }else{ return numsSize; } } return ; } // java语言 class Solution { public int searchInsert(int[] nums, int target) { if(nums == null || nums.length == 0){ return 0; } int start =0; int mid; int end = nums.length -1; while(start + 1 < end){ mid = start + (end - start)/2; if(nums[mid] == target){ return mid; }else if(nums[mid] < target){ start = mid; }else{ end = mid; } } if(nums[start] == target || target < nums[start]){ return start; }else if(nums[start] < target && target < nums[end]){ return end; }else{ if(nums[end] == target){ return end; }else{ return end+1; } } } } //c++ class Solution { public: int searchInsert(vector<int>& nums, int target) { if(nums.size() == 0){ return 0; } int start = 0; int mid; int end = nums.size()-1; while(start + 1 < end){ mid = start + (end - start)/2; if(nums[mid] == target){ return mid; }else if(nums[mid] > target){ end = mid; }else{ start = mid; } } if(nums[start] > target || nums[start] ==target){ return start; }else if(nums[start] < target && nums[end] > target){ return end; }else if(nums[end] == target){ return end; }else{ return end + 1; } } };

     

    // java class Solution { public int search(int[] nums, int target) { if(nums == null || nums.length == 0){ return -1; } int start = 0; int mid; int end = nums.length-1; while(start + 1 < end){ mid = start + (end - start)/2; if(nums[mid] == target){ return mid; }else if(nums[mid] > target){ end = mid; }else{ start = mid; } } if(nums[start] == target){ return start; } if(nums[end] == target){ return end; } return -1; } }

     

    Processed: 0.009, SQL: 8