摘要:
一:解题思路 这道题有2种解题方法。 第一种就是递归法,从根节点开始,自定向下开始遍历二叉树,这样对树中的节点就会有很多重复遍历的,导致算法的时间复杂度不高。算法时间复杂度为n*log(n),当树只有一边的时候,递归调用深度为最深。算法的空间复杂度为:O(n)。 第二种方法在于改进第一种方法,第一种 阅读全文
posted @ 2020-03-13 17:16
repinkply
阅读(134)
评论(0)
推荐(0)
摘要:
一:解题思路 这道题目有2种做法。 解法一:利用递归的方法来做。 解法二:利用一个辅助队列,用迭代的方法来做。2种方法的时间复杂度,和空间复杂度都为:O(n) 二:完整代码示例 (C++版和Java版) 递归版C++: class Solution { public: TreeNode* inver 阅读全文
posted @ 2020-03-13 15:28
repinkply
阅读(130)
评论(0)
推荐(0)
摘要:
一:解题思路 这个题目第一种解题方法是朴素解法,时间复杂度为O(n*m)。 第二种方法就是KMP算法,用KMP算法可以将时间降低为O(m+n)。 二:完整代码示例 (C++版和Java版) 朴素解法C++: class Solution { public: int strStr(string hay 阅读全文
posted @ 2020-03-13 14:52
repinkply
阅读(155)
评论(0)
推荐(0)
摘要:
一:解题思路 丑数的定义为:只包含质因数为2,3,5的正整数,其中1作为特例也算作丑数。这个题目比较简单,首先需要判断这个数是否小于等于0,如果是肯定不是丑数,然后需要连续的去除以2,3,5,看最后的得到的结果是否为1。如果最后得到的结果是为1这说明这个数为丑数。 Time:O(m+n+l),Spa 阅读全文
posted @ 2020-03-13 14:00
repinkply
阅读(377)
评论(0)
推荐(0)
摘要:
一:解题思路 这个题目是二分搜索的变形题目,与标准的二分搜索只有一点有区别,如果没有找到返回begin即可。Time:O(log(n)),Space:O(1) 二:完整代码示例 (C++版和Java版) C: int searchInsert(int* nums, int numsSize, int 阅读全文
posted @ 2020-03-13 11:38
repinkply
阅读(185)
评论(0)
推荐(0)

浙公网安备 33010602011771号