Solución
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