题目分析
合法的二叉搜索树,这个题目非常简单,并不是想为难大家,只是希望小伙伴们能够用不同的方法解决此题。
这个题目是一个数学问题,如果数字很小的话可以迭代求解,但是一旦超过20以上,就变得较为复杂,因为阶乘的数值比指数还要爆炸,在n较大的时候,long类型都无法表示,即使Python语言也会计算的非常慢,小伙伴们能够想到不用计算的好办法吗?
有关树的题目,小伙伴们就要想到递归,这个要深深的印在脑海里面。本题和Leetcode 剑指Offer68-Ⅰ是姐妹类型,这个题目难度稍微大一些,上一题我没有拿出来讲解是因为过于简单。在二叉搜索树中查找,因为是搜索树,我们可以根据节点的大小选择固定的路,不用进行回溯,所以通过迭代即可,不用递归进行查找,**时间复杂度为$O(log(n))$。这个题目我们不知道树中节点的大小关系,因此需要进行递归查找,时间复杂度为$O(n)$**。
等了好久,最近闲下来了,接下来的一段时间给大家介绍Java的一些基本语法,因为没有多年的Java开发经验,在这里只能点到为止,带着大家入门,如何提升代码能力和实际开发能力,还需要小伙伴们多多刷题,多多进行工程实践。Java的创始人为加拿大人詹姆斯·高斯林(James Gosling)和他的小组成员。其开发的主要目的是解决C++语言的复杂性和无法跨平台运行的问题。对C++语言进行了改造,去除了C++中一些不太实用及影响安全的成分,创建了一种完全面向对象的语言。