Solución

@arkzado
·hace 2dTypeScript
solution.tsTypeScript
export function countOccurrences(nums: number[], target: number): number {
  // Escribe tu solución aquí

  if(nums.length === 0) return 0;
  if(nums.length === 1 && target === nums[0]) return 1;

  let inicio = 0;
  let final = nums.length - 1;
  let posicionEncontrado = null;
  let primero = null;
  let ultimo = null;

  while(inicio <= final){
    let mitad = Math.floor((inicio + final) / 2);

    if(nums[mitad] === target){
      posicionEncontrado = mitad;
      final = mitad - 1;
    }
    else if(target < nums[mitad]){
      final = mitad - 1;
    }
    else{
      inicio = mitad + 1;
    }
  }

  primero = posicionEncontrado;
  if(primero === null) return 0;

  posicionEncontrado = null;
  inicio = 0;
  final = nums.length - 1;

  while(inicio <= final){
    let mitad = Math.floor((inicio + final) / 2);

    if(nums[mitad] === target){
      posicionEncontrado = mitad;
      inicio = mitad + 1;
    }
    else if(target < nums[mitad]){
      final = mitad - 1;
    }
    else{
      inicio = mitad + 1;
    }
  }
  
  ultimo = posicionEncontrado;

  return ultimo - primero +  1;
}
0respuestas
Respuestas
0

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.
Markdown