LeetCode-119. Código y análisis del triángulo II de Pascal (Java)

LeetCode-119. Yang Hui Triangle II [Pascal's Triangle II] -Analysis and Code [Java]

1. Tema

Dado un índice k no negativo, donde k ≤ 33, devuelve la k-ésima fila del triángulo de Yanghui.
En el triángulo de Yanghui, cada número es la suma de los números de la parte superior izquierda y superior derecha.

Ejemplo:

输入: 3
输出: [1,3,3,1]

Avanzado:
¿Puede optimizar su algoritmo para la complejidad del espacio O (k)?

Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/pascals-triangle-ii Los
derechos de autor son propiedad de LeetCode . Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.

Dos, análisis y código

1. Cálculo directo

(1) Pensando

De acuerdo con las propiedades del triángulo de Yanghui, el número m-ésimo en la enésima fila es C (n, m), combinado con la fórmula del número de combinación, el número m-ésimo se puede obtener como C (n, m) = C ( n, m-1) * (n-m + 1) / m.

(2) Código

class Solution {
    
    
    public List<Integer> getRow(int rowIndex) {
    
    //rowIndex从0计数
        List<Integer> row = new ArrayList<>();
        row.add(1);
        for (int i = 1; i <= rowIndex; i++)
            row.add((int) ((long) row.get(i - 1) * (rowIndex - i + 1) / i));
        return row;
    }
}

(3) Resultados

Tiempo de ejecución: 0 ms, superando al 100,00% de los usuarios
en todos los envíos de Java ; consumo de memoria: 36,5 MB, superando al 14,94% de los usuarios en todos los envíos de Java.

Tres, otro

Nada.

Supongo que te gusta

Origin blog.csdn.net/zml66666/article/details/113839314
Recomendado
Clasificación