01 2019 档案
摘要:这道题用STL容器就很好写了,可以用set也可以用map, 用unordered_map的C++代码如下: 12ms beat 44% 使用set: 16ms beat 33% C++ 二分法: 但是,但是,但是,题目要求time O(n2) space O(1) 说明这道题要时间换空间,那么使用二
阅读全文
摘要:递归方法 C++代码:
阅读全文
摘要:前序遍历的递归解法: 方法一C++: 前序遍历的非递归方法: 前序遍历和层序遍历的迭代写法很相似,因此也较为简单。 前序遍历采用stack,当栈顶元素p非空,前序遍历先访问栈顶元素并pop(),然后依次压入右孩子和左孩子。 层序遍历采用queue, 当队首元素p非空,层序遍历先访问队首元素并pop(
阅读全文
摘要:递归算法C++代码: 非递归方法(迭代):通过stack容器 C++代码:O(n)空间复杂度,O(n)时间复杂度 自己写的,实际上为将递归方法代码用stack具体化,需要注意的是加上了回溯与向下递归的判别; 别人的代码: 方法三:Morris Traversal 由于需要用到Thread Binar
阅读全文
摘要:相似题目: 102 103 107 其实这个解答只是reverse 了一下,算是投机取巧吧,之后写个从叶节点遍历的。
阅读全文
摘要:与102相比就增加了flag,用以确定要不要进行reverse操作 reverse:STL公共函数,对于一个有序容器的元素reverse ( s.begin(),s.end() )可以使得容器s的元素顺序反转; C++代码: 相似: 102 103 107
阅读全文
摘要:基础为用队列实现二叉树的层序遍历,本题变体是分别存储某一层的元素,那么只要知道,每一层的元素都是上一层的子元素,那么只要在while循环里面加个for循环,将当前队列的值(即本层元素)全部访问后再执行下一个循环就可以了。 C++代码:
阅读全文
摘要:单词拆分2,递归+dp, 需要使用递归,同时使用记忆化搜索保存下来结果,c++代码如下 参考:http://www.cnblogs.com/grandyang/p/4576240.html
阅读全文
摘要:一开始的错误答案与错误思路,幻想直接遍历得出答案: 这种做法其实方向比较对,但是离正确答案还差一步,这里的step的更新是唯一的,而现实的情况可能同时满足几种不同的step,所以该程序可以通过测试用例"leetcode"["leet","code"],但是不能通过"cars" ["car","ca"
阅读全文
摘要:python代码如下: 因为一开始没看明白题目所以直接看答案了,发现原来就是插入链表节点再把链表拆开,python代码为粘贴自别人,下次用C++实现贴在后面,
阅读全文
摘要:很典型的动态规划题目 C++解法一:空间复杂度n2 还可以简化一下空间,只用一个向量来进行运算;今天太累了,明天试着独立写一下;
阅读全文
摘要:能运行却超时的代码。。。: 经过调整终于不超时的代码,24ms beat84% 思想和3 sum一样,只不过是用两重循环从头开始遍历fix两个数,然后从剩下的数组中使用while首尾遍历,从而达到n3的复杂度;
阅读全文
摘要:利用栈的原理完成逆波兰表达式计算: 今天的题目主要是后缀表达式的运算,是栈的性质的经典例题,然后我今天还是卡克了一下,主要是在char与string的不同卡壳,c++/c中,char是‘*’,而string 以及char[]是“789”;类似的char to int为 int量=atoi(char量
阅读全文
摘要:之前没有把三数之和整理,今天把two sum,three sum, four sum 都发出来 我的第一感觉就是:仿照two sum的哈希方法,表示nums,然后双重循环,时间复杂度O(n2),然而由于leetcode挂掉,我的代码丢了,如果能找回来再贴: 先贴优化过的解: C++解法二: 思路如下
阅读全文
摘要:leetcode 12题 数字转罗马数字 答案一:我的代码 代码本地运行完全正确,在线运行出错 答案二: 参考别人将预先的特殊情况(即罗马数字符号进位与罗马数字前后大小颠倒两种情况全部事先存储起来,然后根据实际情况进行计算)
阅读全文
摘要:leetcode 134 解析 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加
阅读全文
摘要:cin.getline在输入char时: getline在输入string时:
阅读全文