zoukankan      html  css  js  c++  java
  • 算法递归问题

    左神 中级提升班2-1

    n表示二叉树节点的个数

    返回能够形成多少种不同的二叉树的结构

    分析

    解决一个原子问题

    import java.util.Arrays;
    
    class Solution {
        public long[] cache;
    
        /**
         * @param n 二叉树节点的个数
         * @return 能够形成多少种不同的二叉树结构
         */
        public long f(int n) {
            cache = new long[n];
            Arrays.fill(cache, -1);
            return process(n);
        }
    
        private long process(int n) {
            if (cache[n] != -1) {
                return cache[n];
            }
            if (n == 0) {
                cache[0] = 0;
                return 0;
            }
            if (n == 1) {
                cache[1] = 1;
                return 1;
            }
            if (n == 2) {
                cache[2] = 2;
                return 2;
            }
            long ans = 0;
            for (int i = 0; i < n; i++) {
                ans += f(i) * f(n - i - 1);
            }
            cache[n] = ans;
            return ans;
        }
    }

    左神 中级提升班 3-4

    leetcode 91.解码方法

    将给定的数转换为字符串,原则如下:1对应a,...,26对应z,例如12258可以转换为"abbeh" "aveg" "abyh" "lbeh" "lyh"

    编写一个函数,返回可以转换的不同字符串的个数

  • 相关阅读:
    程序的版式
    文件结构
    LIB和DLL的区别与使用
    静态链接库
    C++ Vector
    C++ Map
    C++ List
    快速实现十进制向二进制转换
    Fail2ban 运维管理 服务控制
    Fail2ban 配置详解 动作配置
  • 原文地址:https://www.cnblogs.com/t1314/p/15758009.html
Copyright © 2011-2022 走看看