Word Ladder
摘要:该题目考察的知识点是宽度优先搜索,宽度优先搜索可以用队列保存计算的中间变量。需要注意的是urordered_set,是哈希表实现,查找的效率很高。利用这个特点做题。具体实现的代码如下:class Solution {public: unordered_set data; queue> result;...
阅读全文
posted @
2014-12-26 22:29
xgcode
阅读(247)
推荐(0)
Surrounded Regions
摘要:该题目主要考察了堆栈和深度优先搜索的知识点。在递归深度太深导致运行出错是,可以采用栈保存结果,减小递归的深度。详细代码如下:class Solution {public: stack> data; void solve(vector> &board) { if(board...
阅读全文
posted @
2014-12-26 20:37
xgcode
阅读(151)
推荐(0)
Rotate List
摘要:class Solution {public: typedef ListNode * SNode; ListNode *rotateRight(ListNode *head, int k) { SNode pcurrent , pnext,ptemp; if(knext == NULL) ...
阅读全文
posted @
2014-12-21 15:42
xgcode
阅读(112)
推荐(0)
Gas Station
摘要:题目提示采用贪心算法,不知道别人怎么实现的,可以参考下别人的思路。答案如下:class Solution {public: vector leftgas; int len; int canCompleteCircuit(vector &gas, vector &cost) { l...
阅读全文
posted @
2014-12-21 11:19
xgcode
阅读(146)
推荐(0)
Add Binary
摘要:该题答案如下:class Solution {public: string addBinary(string a, string b) { string::reverse_iterator itea,iteb; string result; char temp; ...
阅读全文
posted @
2014-12-21 10:24
xgcode
阅读(92)
推荐(0)
Binary Tree Postorder Traversal
摘要:先简单介绍下先序遍历、中序遍历和后序遍历,先序遍历为ABC,中序遍历为BAC,后续遍历为BCA,根节点在的位置决定了什么遍历。该题的递归解法:class Solution {public: typedef TreeNode * STreeNode; vector buf; vector pos...
阅读全文
posted @
2014-12-20 18:16
xgcode
阅读(142)
推荐(0)
Leetcode: Binary Tree Preorder Traversal
摘要:这道题一共有三道解法:其中第二种解法,我参考了迭代器的写法,写了一个迭代器的类。重载了前++和—>操作符,但是这个解法会造成内存的超限,很奇怪,解法1:递归解法: 1 class Solution { 2 public: 3 vector result; 4 vector preor...
阅读全文
posted @
2014-12-20 12:00
xgcode
阅读(129)
推荐(0)
关于智能指针
摘要:对share_ptr,属于强引用型的智能指针。内部通过引用计数实现对对象的管理,在引用计数为0时,自动释放对象。使用share_ptr的缺点是:会造成对象的循环引用,导致对象永远无法释放,比如:Share_ptr可以在多线程中使用,确保指针指向的对象是有效的。Weak_ptr是弱引用性的智能指针。W...
阅读全文
posted @
2014-12-18 21:16
xgcode
阅读(312)
推荐(0)
关于自动化测试用例
摘要:在做leetcode代码时,经常碰到多种异常情况需要考虑,因此需要一个自动化的测试工具,在查找testunit是发现安装太麻烦,自己写了一个简单的测试工具:#define EXPECT_EQ(data0,data1) do\{\ if(data0 != data1)\ return false;\}...
阅读全文
posted @
2014-12-18 20:54
xgcode
阅读(153)
推荐(0)
c++面试题总结
摘要:最近看到一些有意思的C++面试题目,总结一下: 1 、C++中虚析构函数的作用 虚的析构函数主要是在类的继承时有作用。是在基类指针指向派生类对象时,释放基类指针指向的对象时,会自动调用派生类的析构函数。 陈硕的linux多线程服务器端编程
阅读全文
posted @
2014-12-18 19:51
xgcode
阅读(147)
推荐(0)
Populating Next Right Pointers in Each Node II
摘要:这道题思路总结一下:感觉上是用了动态规划的思想,对于二叉树,不论是完全二叉树还是非完全二叉树,只要确定上一层所有相邻节点的关系。就可以把本层的链接关系确定。对于二叉树第一层是确定的。所以可以依次类推。确定所有二叉树层次的关系。leetcode 代码实现详解class Solution {public...
阅读全文
posted @
2014-12-14 13:59
xgcode
阅读(122)
推荐(0)