1502. Juzga si es posible viajar en una secuencia aritmética.

Descripción del título: le
da una matriz numérica arr.
Si la diferencia entre dos elementos adyacentes en una secuencia es siempre igual a la misma constante, entonces la secuencia se denomina secuencia aritmética.
Si puede reorganizar la matriz para formar una secuencia aritmética, devuelva verdadero; de lo contrario, devuelva falso.

Ejemplo 1:
Entrada: arr = [3,5,1]
Salida: verdadera
Explicación: Reordene la matriz para obtener [1,3,5] o [5,3,1], la diferencia entre dos elementos adyacentes es 2 respectivamente O -2 para formar una secuencia aritmética.

Ejemplo 2:
Entrada: arr = [1,2,4]
Salida: falso
Explicación: La secuencia aritmética no se puede obtener reordenando.

提示 :
2 <= longitud de arr. <= 1000-10
^ 6 <= arr [i] <= 10 ^ 6

Enlace de título:
https://leetcode-cn.com/problems/can-make-arithmetic-progression-from-sequence

Ideas para la resolución de problemas:
1. Ordena la lista dada;
2. Encuentra la diferencia entre los dos primeros elementos;
3. Haz un recorrido para determinar si la diferencia entre los dos elementos siguientes es igual a esta diferencia, si es igual a ella , continúe, si no es igual a Devolver Falso
4. Si el recorrido se completa y ninguno de ellos devuelve Falso, devuelva Verdadero.

Código:

class Solution:
    def canMakeArithmeticProgression(self, arr):
        new_arr = sorted(arr)
        minus_value = new_arr[1] - new_arr[0]
        for i in range(1,len(new_arr)):
            if new_arr[i] - new_arr[i-1] == minus_value:
                continue
            else:
                return False
        return True

s = Solution()
print(s.canMakeArithmeticProgression([3,5,1]))

Supongo que te gusta

Origin blog.csdn.net/annlin2009/article/details/114129910
Recomendado
Clasificación