zoukankan      html  css  js  c++  java
  • Day 23

    第96题:

    给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?(来自LeetCode)

    1、题目相当于给了n个数(1……n),然后使用这n个数来组成二叉树;

      其实很容易就像得到就是用n个数里面的每个数字来作为根节点计算它组成的二叉树个数;

      (这里可以知道sum[0]=1,sum[1]=1)

      这里可以看得出思想是递归往下的,例如给一个(1、2、3、4、5);

      我们此时用3作为根节点,然后它的左子树一定是由(1、2)两个节点组成

                      右子树一定是由(4、5)两个节点组成

      我们就可以利用dp数组或者递归的方式来将两个节点组成的二叉搜索树个数存储起来;

      一直左右子树都是两个节点组成的二叉树,两个节点组成的树个数都是两个;

      那么就得出根节点为3,节点数为5组成的二叉搜索树个数是4(2*2)个;

      这样依次就可以得出每个数作为根节点组成的二叉树个数了;

      最终得出结果(遍历的时候就可以直接将结果累加起来,最终的sum[n]就是所需要的总数)

      

      下面时递归写法

      

    第53题:

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。(来自LeetCode)

    1、其实就和插入排序一样,将数组的第一个元素作为最终解;

      然后将后面的元素依次加入最终解,判断每一步加的时候最终解与之前的最终解比较,去大的那个就可以了。

      

    2、下面是动态规划,思想都差不多。

      

  • 相关阅读:
    java标识符的作用和命名规则
    Java还是编程语言中的老大?凭什么长期霸占第一宝座?
    JavaScript基础内容中的函数详解
    SpringMVC配置文件 中 mvcview-controller 标签的使用
    说说JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?
    SpringMVC和Spring的配置文件扫描包详解
    Mybatis配置详解
    关于Redis的常见面试题解析
    jQuery杂谈一
    LeetCode-212 单词搜索 II
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13311226.html
Copyright © 2011-2022 走看看