Search Index

Entradas Archivos Wallpaper Problemas

Search Index

Este problema consisten en implementar búsqueda binaria

Solucion

# @param {Integer[]} nums
# @param {Integer} target
# @return {Integer}
def search_insert(nums, target)
    izq = 0 
    der = nums.length
    while izq <= der
        mid = (izq+der)/2
        if nums[mid]==nil || mid == nil
            break
        end
        if nums[mid]<target
            izq+=1
        elsif nums[mid]>target
            der -=1
        else
            return mid
        end
    end
    izq
end

Solo que por algún motivo tenía que verificar que los dos valores no fueran nulos aunque cuando imprimia los valores en ningún momento estos eran nulos, y el input nunca era nulo, pero si quitaba esas 3 líneas el programa no funcionaba.

Esta es la solución al problema 31 pero también funciona para el problema 704 aunque no es la optima

# @param {Integer[]} nums
# @param {Integer} target
# @return {Integer}
def search_insert(nums, target)
    izq = 0 
    der = nums.length
    while izq <= der
        mid = (izq+der)/2
        if nums[mid]==nil || mid == nil
            break
        end
        if nums[mid]<target
            izq+=1
        elsif nums[mid]>target
            der -=1
        else
            return mid
        end
    end
    -1
end