Kata - Valor mais próximo de zero

Identificação do desafio

Encontrar o valor mais próximo de zero (inclusive) em uma dada lista.

  • A: lista de valores a analisar (negativos, zero ou positivos).
  • N: quantidade de elementos em A (1 <= N <= 100).

Pistas ou dicas

Exemplos de entrada:

  • 0 2 3 4 5
    resultado esperado: 0

  • -60 -59 30 -58 45 -57 23 -56 -55 -54 -53 -52 -51 -50 50
    resultado esperado: 23

Recursos

  • Ambiente de programação (Python).

Obstáculos

Domínio da disciplina Algorítmos1 2 e Estrutura de Dados3.

Solução

🙈 🙉 🙊

def main(A: list):
    A.sort()
    if A[0] == 0:
        return 0

    i = 1
    while i < len(A):
        nleft = i - 1
        nrigth = i
        
        if A[nrigth] == 0:
            return 0
        elif A[nleft] < 0 and 0 < A[nrigth]:
            return A[nrigth]
        elif A[nleft] > 0 and 0 < A[nrigth]:
            return A[nleft]
        elif A[nleft] < 0 and A[nrigth] < 0 and i + 1 >= len(A):
            return A[nrigth]

        i += 1

Referências


  1. Entendendo Algorítmos, Aditya Bhargava, ed. 2017 ↩︎

  2. Projeto de Algorítmos - com Implementação em Pascal e C, Ph.D. Nivio Ziviani, ed. 2011 ↩︎

  3. Data Structures and Algorithms (DSA), disponível em https://www.geeksforgeeks.org/dsa/dsa-tutorial-learn-data-structures-and-algorithms ↩︎