Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

147
Vistas
Bits de conteo que no dan el resultado esperado

Intentar resolver los Counting Bits using JavaScript , básicamente finding the number of set bits for all numbers from 0 to N and push them in an array and return as answer

aquí está la explicación

 Input: n = 5 Output: [0,1,1,2,1,2] Explanation: 0 --> 0 1 --> 1 2 --> 10 3 --> 11 4 --> 100 5 --> 101

Aquí está la solución en Javascript

 const countBits = function (nums){ let mem = []; mem[0] = 0; for (let i=0;i<=nums;i++) mem[i] = mem[i/2] + i%2; return mem; }

Veo la salida como

 PS C:\VSB-PRO> node Fibo.js [ 0, NaN, NaN, NaN, NaN ]

Aquí está el código de referencia que intenta convertir y que se escribió previamente en Java

 class Solution { public: vector<int> countBits(int num) { //mem[i] = No of 1s from 0 to number i vector<int> mem(num+1); mem[0] = 0; for(int i=1;i<=num;++i) mem[i] = mem[i/2] + i%2; return mem; } };

Su ayuda es muy apreciada

Saludos,

Carolina

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Lo que pasa es que en Java / representa la división de enteros cuando los operandos son enteros, pero en JavaScript, la división será una división de punto flotante, por lo que 1/2 == 0.5, y luego mem[0.5] será un valor indefinido.

Utilice el operador de desplazamiento de bits en su lugar para obtener el mismo comportamiento:

 const countBits = function(nums) { let mem = [0]; for (let i = 0; i <= nums; i++) mem[i] = mem[i >> 1] + i % 2; return mem; } console.log(countBits(5));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Convertir números positivos en un objeto de cadena Javascript funcionará para usted

 console.log(Number(256).toString(2)); // 100000000

Si su matriz contiene números positivos y negativos, entonces puede usar el operador " desplazamiento a la derecha sin signo " con el método toString nuevamente.

 console.log((-256 >>> 0).toString(2)); // 11111111111111111111111100000000

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda