摘要: Q: 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator = new BSTIterator(root); iterator.next(); // 返回 3 iterator. 阅读全文
posted @ 2019-08-16 19:50 NeoZy 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Q: 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。 A: 5乘2才能得到10, 阅读全文
posted @ 2019-08-16 19:28 NeoZy 阅读(97) 评论(0) 推荐(0) 编辑
摘要: Q: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向 阅读全文
posted @ 2019-08-16 03:05 NeoZy 阅读(87) 评论(0) 推荐(0) 编辑
摘要: Q: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: n 阅读全文
posted @ 2019-08-14 15:38 NeoZy 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 知道是DP,但就是找不到递推方程,只好拿递归做,从左遍历,遇到第一个匹配的开始对之后的两个字符串递归,复杂度应该是O(N!),指数级的,第51个用例过不去了。 DP[i] [j]表示由s的前i个元素组成的序列A中有多少由t前j个元素组成的序列B。 首先若s的前i-1序列包含t的前j序列,那么s的前i 阅读全文
posted @ 2019-08-07 00:47 NeoZy 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 95Tg:递归这题不能算DP吧,就是递归一个... 阅读全文
posted @ 2019-08-06 18:59 NeoZy 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Tg:DP都在注释里class Soluti... 阅读全文
posted @ 2019-08-06 16:44 NeoZy 阅读(118) 评论(0) 推荐(0) 编辑
摘要: Tg:动规第一次做法:对于从i开始的最大子序... 阅读全文
posted @ 2019-08-06 16:42 NeoZy 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 分治法,但PYTHON还是超时,因为有个巨长... 阅读全文
posted @ 2019-08-06 13:14 NeoZy 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 这题用到了前面84的思路,我先计算了一个数组... 阅读全文
posted @ 2019-08-06 01:59 NeoZy 阅读(86) 评论(0) 推荐(0) 编辑