184 concurso

Número de esquemas para colorear la cuadrícula N x 3

 

Tiene una cuadrícula de cuadrícula nx 3. Debe colorear cada cuadrícula con una de color rojo, amarillo y verde, y asegurarse de que las cuadrículas adyacentes tengan un color diferente (es decir, cuadrículas con los mismos lados horizontales o verticales). Diferentes colores).

Le da el número de filas en el gráfico de cuadrícula n.

Devuelva el número de esquemas pintados a la cuadrícula. Como la respuesta puede ser muy grande, devuelva el resultado del par de respuestas 10 ^ 9 + 7.

 

Ejemplo 1:

Entrada: n = 1
Salida: 12
Explicación: Hay 12 métodos posibles en total:

 

 

Ejemplo 2

Entrada: n = 2
Salida: 54
Ejemplo 3:

Entrada: n = 3
Salida: 246
Ejemplo 4:

Entrada: n = 7
Salida: 106494
Ejemplo 5:

Entrada: n = 5000
Salida: 30228214
 

Consejos:

n == grid.length
grid [i] .length == 3
1 <= n <= 5000

 

/ * * 
 * @param {número} n 
 * @return {número} 
 * / 
// Encuentre el resultado bajo la ley = el número de clases ABA + el número de clases ABC = (3m + 2n) + (2m + 2n) 
var numOfWays = function (n) {
     if (n === 0 ) {
         return 0 
    } más  if (n === 1 ) {
         return 12 
    } 
    let temp = 1000000007 ; 
    let repeat = 6 ; 
    let irrepeat = 6 ;
     for (let i = 2; i <= n; i ++ ) { 
        let newrep = repetir * 3% temp + no repetir * 2%temperatura; 
        let newunrep = repetir * 2% temp + no repetir * 2% temp; 
        repetir = newrep; 
        irrepetible = newunrep; 
    } 
    return (repetir + no repetir)% temp 
};

 

/ * * 
 * @param {número} n 
 * @return {número} 
 * / 
// Estaba pensando en ese momento, es una combinación, pero la segunda columna de la segunda fila en realidad no es 1. Es posible 1, es posible 2, falta la situación. 
var numOfWays = function (n) { 
 let arr   = new Array (n);
     for (let i = 0; i <n; i ++ ) { 
        arr [i] = new Array (3 ) 
    } 
    let row = arr.length; 
    let clo = 3 ;
     for (let i = 0; i <row; i ++ ) {
         for (let j = 0; j <clo; j ++ ) {
             if (i == 0 && j === 0 ) {
                arr [i] [j] = 3 ; 
            } else  if (i == 0 && j> 0 ) { 
                arr [i] [j] = 2 ;        
            } else  if (i> 0 && j === 0 ) { 
                arr [i] [j] = 2 ;        
            } else { 
                arr [i] [j] = 1 ; 
            } 
        } 
    } 
    
    let res = 1 ;
    for (let i = 0; i <row; i ++ ) {
         for (let j = 0; j <clo; j ++ ) { 
            res* = arr [i] [j]; 
            res % = Math.pow (10, 9) +7 
        } 
    } 
    for (let i = 0; i <row; i ++ ) {
         for (let j = 0; j <clo; j ++ ) {
             if (i == 0 && j === 0 ) { 
                arr [i] [j] = 3 ; 
            } else  if (i == 0 && j> 0 ) { 
                arr [i] [j] = 2 ;        
            } else  if (i> 0 && j === 0 ) { 
                arr [i] [j] = 2 ;        
            } más {
                arr [i] [j] = 1 ; 
            } 
        } 
    } 
    // arr [0] [0] = 3; 
//      for (let i = 0; i <arr.length; i ++) { 
//          for (let j = 0; j <arr [0] .length; j ++) { 
//              if ((arr [i-1] && arr [i-1] [j] === undefined && arr [i] && arr [i] [j-1]! == undefined) || (arr [i-1] && arr [i-1] [j]! == undefined && arr [i] && arr [i] [j-1] === undefined)) { 
//                  arr [i] [j] = 2 
//              } más if (arr [i- 1] && arr [i-1] [j]! == undefined && arr [i] && arr [i] [j-1]! == undefined) { 
//                    arr [i] [j] = 1     
//             } else if (arr [i-1] && arr [i-1] [j] == undefined && arr [i] && arr [i] [j-1] == undefined) { 
//                  arr [i] [ j] = 3   
//              } 
            
//          } 
//      } 
    return res; 
};

 

Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/number-of-ways-to-paint-nx-3-grid Los
derechos de autor pertenecen a la red de deducción. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.

Supongo que te gusta

Origin www.cnblogs.com/zhangzs000/p/12728857.html
Recomendado
Clasificación