tema:
Dada una matriz ordenada y un valor objetivo, busque el valor objetivo en la matriz y devuelva su índice. Si el valor objetivo no existe en la matriz, devuelva la posición donde se insertará en orden.
Puede suponer que no hay elementos duplicados en la matriz.
Análisis:
Podemos realizar búsquedas binarias de forma circular.
P.ej
Código:
class Solution {
public int searchInsert(int[] nums, int target) {
int index=-1;
int begin=0;
int end = nums.length-1;
while(index==-1){
int mid=(begin+end)/2;
if(target==nums[mid]){
index= mid;
}
else if(target<nums[mid]){
if(mid==0 || target>nums[mid-1]){
index= mid;
}
end=mid-1;
}
else if(target>nums[mid] ){
if(mid==end || target<nums[mid+1]){
index= mid+1;
}
begin=mid+1;
}
}
return index;
}
}
Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/search-insert-position Los
derechos de autor son propiedad de LeetCode . Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.