题目分析
在某大厂的笔试中,我做过这道题目,不过当时的笔试较为简单,没有这个题目来的复杂。我们就来说一说这种判断是否合法的题目。
整数拆分问题是一个数学问题,如果指定拆分个数是2个的话,那么就是小伙伴们小学都学过的问题,可能小伙伴们会抬杠,小学怎么可能学过求二次函数最大值的问题呢?其实二拆分这个问题有另外一种描述:同样周长的正方形和长方形哪一个面积更大?Leetcode这一题将二拆分进行了推广,不指定拆分个数,这应该怎么做呢?暴力穷举当然是不行的,这是指数级的时间复杂度,应该如何优化呢?
最长递增路径问题,是一个有向图问题,而且要更为复杂一些,不是一个简单的单向图,而是多向图。要想找到最长的一条路径,必然要使用两种常见的搜索方法,DFS和BFS。但是这两个搜索方法都有一个特点,就是已知起始点然后进行搜索,如果不知道起始点,如何搜索得到最长路径呢?一个最暴力的方法是遍历所有起始点,从每一个点开始搜索,并且比较哪一个最长。这样的方法时间复杂度太高,浪费的太多的计算资源,必然无法通过所有的样例,那么如何保存计算过程中的计算结果呢?有一个专业术语称为记忆化,下面给小伙伴聊一聊记忆化的DFS。