12 2014 档案
Word Ladder
摘要:该题目考察的知识点是宽度优先搜索,宽度优先搜索可以用队列保存计算的中间变量。需要注意的是urordered_set,是哈希表实现,查找的效率很高。利用这个特点做题。具体实现的代码如下:class Solution {public: unordered_set data; queue> result;... 阅读全文
posted @ 2014-12-26 22:29 xgcode 阅读(247) 评论(0) 推荐(0)
Surrounded Regions
摘要:该题目主要考察了堆栈和深度优先搜索的知识点。在递归深度太深导致运行出错是,可以采用栈保存结果,减小递归的深度。详细代码如下:class Solution {public: stack> data; void solve(vector> &board) { if(board... 阅读全文
posted @ 2014-12-26 20:37 xgcode 阅读(151) 评论(0) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(0)
关于智能指针
摘要:对share_ptr,属于强引用型的智能指针。内部通过引用计数实现对对象的管理,在引用计数为0时,自动释放对象。使用share_ptr的缺点是:会造成对象的循环引用,导致对象永远无法释放,比如:Share_ptr可以在多线程中使用,确保指针指向的对象是有效的。Weak_ptr是弱引用性的智能指针。W... 阅读全文
posted @ 2014-12-18 21:16 xgcode 阅读(312) 评论(0) 推荐(0)
关于自动化测试用例
摘要:在做leetcode代码时,经常碰到多种异常情况需要考虑,因此需要一个自动化的测试工具,在查找testunit是发现安装太麻烦,自己写了一个简单的测试工具:#define EXPECT_EQ(data0,data1) do\{\ if(data0 != data1)\ return false;\}... 阅读全文
posted @ 2014-12-18 20:54 xgcode 阅读(153) 评论(0) 推荐(0)
c++面试题总结
摘要:最近看到一些有意思的C++面试题目,总结一下: 1 、C++中虚析构函数的作用 虚的析构函数主要是在类的继承时有作用。是在基类指针指向派生类对象时,释放基类指针指向的对象时,会自动调用派生类的析构函数。 陈硕的linux多线程服务器端编程 阅读全文
posted @ 2014-12-18 19:51 xgcode 阅读(147) 评论(0) 推荐(0)
Populating Next Right Pointers in Each Node II
摘要:这道题思路总结一下:感觉上是用了动态规划的思想,对于二叉树,不论是完全二叉树还是非完全二叉树,只要确定上一层所有相邻节点的关系。就可以把本层的链接关系确定。对于二叉树第一层是确定的。所以可以依次类推。确定所有二叉树层次的关系。leetcode 代码实现详解class Solution {public... 阅读全文
posted @ 2014-12-14 13:59 xgcode 阅读(122) 评论(0) 推荐(0)