✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Exercício de codificação – Subindo escadas – Números de Fibonacci – C++ – Juiz Online

6

Pergunta: Você está subindo escadas. São necessários n passos para chegar ao topo. Cada vez, você pode dar 1 passo ou 2 passos. Quantas maneiras distintas de chegar ao topo?

Descrição do problema: http://oj.leetcode.com/problems/climbing-stairs/

Esse problema pode parecer difícil no começo, mas quando você pensa por um segundo, pode achar muito fácil. A resposta é Números de Fibonacci (veja aqui, aqui )

Bem, os Números de Fibonacci originais são definidos como sequências:

Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Online

Para este problema, basta modificar um pouco:

Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Onlinee Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Onlineporque para apenas 1 passo, há apenas 1 caminho distinto e para 2 passos, temos duas soluções: 1 + 1 ou 2.

O resto é como série de Fibonacci. O Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Onlineporque da posição atual, possivelmente somos das duas posições anteriores, F(n-1) e F(n-2).

Você pode usar recursão, mas isso pode ser resolvido por uma solução iterativa mais eficaz.

Ou você prefere uma função recursiva mais direta:

class Solution { public:     int climbStairs(int n) {         if (n == 1) return 1;         if (n == 2) return 2;         return climbStairs(n - 1) + climbStairs(n - 2);     } };

Nota: A recursiva produzirá TIME LIMIT EXCEEDED no teste 44. Isso porque, a função recursiva normalmente calcula valores intermediários muitas e muitas vezes. Por exemplo, Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Online, Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Online. Exercício de codificação - Subindo escadas - Números de Fibonacci - C++ - Juiz Online é calculado duas vezes.

Fonte de gravação: helloacm.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação