Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

802
Views
Solución de HackerEarth Pregunta que falla para el caso de prueba de entrada

A continuación, hackerearth qn se ha preguntado en uno de los qns de codificación

Más lejos de cero

Se le da una matriz de enteros A de tamaño N.

Tarea Escriba un programa para imprimir el elemento más alejado de 0. Si hay varios elementos, imprima el número con el menor valor.

Formato de entrada

  • La primera línea contiene un solo número entero N que indica el tamaño de la matriz A.
  • La siguiente línea contiene N enteros que denotan los elementos de la matriz A.

Formato de salida

Imprime el elemento más alejado de 0.

Ejemplo de entrada 1

5

1 2 3 4 5

Salida de muestra1

5

Solución preparada por mí:

 public static farthestfromzero(int N, int [] Arr) { TreeSet<Integer> ts = new TreeSet<Integer>(); for (int i=0; i<N; i++){ ts.add(Arr[i]); } return ts.last(); }

Pregunte : esta solución funcionó para mí en el escenario inicial, pero cuando la envié, no funcionó.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Su algoritmo no tiene en cuenta los enteros negativos.

Considere esta matriz:

[-10, 7, 5, 1]

¿Qué número está más alejado de cero?
¿Cuál elegirá su algoritmo?

También tenga en cuenta, este requisito:

Si hay varios elementos, imprima el número con el menor valor.

Entonces, de una matriz como esta:

[-10, 1, 2 ,10]

Debe elegir -10, y no 10.

over 4 years ago · Santiago Trujillo Report

0

Esto se debe a que el conjunto de árboles está ordenado por los valores, el número puede ser positivo. Así que... creo que debería ser esto:

 public static int farthestfromzero(int N, int [] Arr) { TreeSet<Integer> ts = new TreeSet<Integer>(); for (int i=0; i<N; i++){ ts.add(Arr[i]); } int maxV = ts.last(); int minV = ts.first(); if(Math.abs(minV) >= maxV){ return minV; } return maxV; }

Además, si se excede la memoria, intente esto:

 public static int farthestfromzero(int N, int [] Arr) {//You don't really need to store every elements int best = 0; for(int i = 0;i<N;i++) { if(Math.abs(Arr[i]) > Math.abs(best)) { best = Arr[i]; }else if(Math.abs(best) == Math.abs(Arr[i]) && best > Arr[i]) { best = Arr[i]; } } return best; }
over 4 years ago · Santiago Trujillo Report

0

Aquí está mi respuesta. Acabo de escribir la lógica central. Agregue la verificación de condición básica. Además, lo hice en Python3. Código comentado la expansión del siguiente código de una sola línea.

 A1 = sorted(A) print(A1[0]) if (abs(A1[0])> abs(A1[-1])) else print(A1[-1]) if (abs(A1[0]) < abs(A1[-1])) else print(A1[0]) # if (abs(A1[0])== abs(A1[-1])): # print(A1[0]) # else: # if(abs(A1[0]) > abs(A1[-1])): # print(A1[0]) # else: # print(A1[-1])
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!