Leetcode
文章平均质量分 70
想学习的弱鸡小白
计算机科学的教育不会让任何人成为内行的程序员,正如研究画笔和颜料不会让任何人成为内行的画家
展开
-
盛水的容器
解题思路如何证明双指针时移动较小值的正确性?设此时双指针分别为left和right,先不考虑两者相等的情况,则不妨设height[left] < height[right],假设此时移动右指针,即 使right-1,下面证明right-1对应的元素值无论为多大,计算出的结果ans = min(height[left], height[right-1])*(right-1-left)都会减小。(1) h[right-1] > h[left]:则由于height[left] < heig原创 2021-04-21 22:06:00 · 155 阅读 · 0 评论 -
数组中数字出现的次数
数组中数字出现次数通用思路问题一:其他数字均出现2次,只有一个数字出现一次问题二:其他数字均出现2次,只有两个数字出现一次(LC)问题三:其他数字均出现三次,只有一个数字出现一次延申通用思路通常遇到“出现的次数”,“寻找出现多少次的值”,往往都是可以用哈希表来解决的,因为哈希表的特点天然决定了它的好处:查找,插入,删除的复杂度均为O(1),并且存放形式支持key-value,那么我们只需要将key设置为对应的字符或者其他类型,value设置为出现次数,遍历数组过程中就可以更新对应的value值即可。这原创 2021-04-16 17:47:04 · 1212 阅读 · 0 评论 -
二叉树中前序,中序,后序遍历的迭代实现
二叉树遍历二叉树的遍历(lc)前序中序后序总结二叉树的遍历(lc)二叉树的遍历可分为前序,中序,后序三种。其中前序最为简单,中序和后序较复杂。为什么这么说????????可能大家会想,如果用递归的方法实现,那么不都是三次行代码吗?递归函数中一个判断当前节点为空的边界条件,然后dfs(cur->left), dfs(cur->right), print(cur) 三者交换不同的顺序,就实现了前中后序遍历。的确,这样是没错的,但面试中面试官经常会禁止我们用递归的方法实现,这时该怎么办呢?不用原创 2021-04-15 15:37:09 · 217 阅读 · 0 评论 -
前序中序构造二叉树
前序中序构造二叉树思路首先思考前序序列和中序序列的特点,前序每次首先遍历当前节点,然后才会依次进入左子树和右子树;而中序则首先进入左子树,结束以后遍历当前节点,最后进入右子树。因此利用这两个特性,我们可以通过前序序列构造当前的节点,用中序序列定位当前节点的左子节点和右子节点,同时还要进入左子树和右子树进行递归构造。在进入左子树递归构造时,需要首先考虑此时左子节点可能存在的区域,根据中序序列的特点可知,左子树肯定在当前节点的左边,右子树肯定在当前节点的右边。那么如果我们已经找到了当前节点,便可以据此作为原创 2021-04-13 11:04:09 · 1119 阅读 · 0 评论