Search Index

Entradas Archivos Wallpaper ASCCI Problemas

Search Index

Este problema consisten en implementar busqueda 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 algun motivo tenia que verificar que los dos valores no fueran nulos aunque cuando imprimia los valores en ningun momento estos eran nulos, y el input nunca era nulo, pero si quitaba esas 3 lineas el programa no funcionaba.

Esta es la solucion al problema 31 pero tambien 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