
剑指offer
左眼皮跳跳~
这个作者很懒,什么都没留下…
展开
-
用两个栈实现队列
用两个栈模拟队列class Solution{ public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) { while(!stack1.empty()) { stack2.push(stack原创 2016-03-17 22:46:41 · 278 阅读 · 0 评论 -
求二叉搜索树中第k个节点
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public:原创 2016-05-09 22:23:47 · 424 阅读 · 0 评论 -
二叉树 给定一个节点,求中序遍历下一个节点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。using namespace std;/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *原创 2016-05-09 19:12:59 · 1575 阅读 · 0 评论 -
删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), nex原创 2016-05-09 18:38:44 · 403 阅读 · 0 评论 -
链表环的第一个节点
class Solution {public: mapmp; ListNode* EntryNodeOfLoop(ListNode* pHead) { mp.clear(); while(pHead) { if(mp[pHead]) return pHead; mp原创 2016-05-09 18:22:59 · 462 阅读 · 0 评论 -
字符流中第一个不重复的字符
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。class Solution{public: //Insert one原创 2016-05-09 18:19:46 · 266 阅读 · 0 评论 -
判断一棵树是不是平衡树(数值大小不判断,只盼高度)
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { int dep=0; return dfs(pRoot,dep); } bool dfs(TreeNode* p,int &dep)原创 2016-05-09 18:09:58 · 449 阅读 · 0 评论 -
两个链表相交的节点
题目描述输入两个链表,找出它们的第一个公共结点。class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { mapmp; mp.clear(); while(pHead1)原创 2016-05-09 17:30:54 · 325 阅读 · 0 评论 -
逆序对数(归并排序)
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。以前都是线段树写,这次归并排序写的class Solution {public: int InversePairs(vector data) { vectortemp(data.begin(),data.end());原创 2016-05-09 17:21:54 · 326 阅读 · 0 评论 -
一战通 offer 第三题(语法错误导致没有通过)
对于一棵由黑白点组成的二叉树,我们需要找到其中最长的单色简单路径,其中简单路径的定义是从树上的某点开始沿树边走不重复的点到树上的另一点结束而形成的路径,而路径的长度就是经过的点的数量(包括起点和终点)。而这里我们所说的单色路径自然就是只经过一种颜色的点的路径。你需要找到这棵树上最长的单色路径。给定一棵二叉树的根节点(树的点数小于等于300,请做到O(n)的复杂度),请返回最长单色路径的长度原创 2016-04-20 09:02:34 · 495 阅读 · 0 评论 -
完美世界 2016 笔试 编程第二题
#include#include#include#include#include#include#include#include#include#include#define L(x) (x<<1)#define R(x) (x<<1|1)#define MID(x,y) ((x+y)>>1)#define eps 1e-8using namespace std;原创 2016-04-25 21:00:17 · 498 阅读 · 0 评论 -
判断一个数组是否为二叉排序树的后续遍历
二叉搜索树的后序遍历序列参与人数:2503时间限制:1秒空间限制:32768K算法知识视频讲解题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。链接: http://www.nowcoder.com/practice/a861533d45854474ac7原创 2016-03-23 22:06:25 · 1284 阅读 · 0 评论 -
求一棵树的镜像树
连接;http://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述操作给定的二叉树,将其变换为源二叉树的镜像。原创 2016-03-23 17:11:35 · 655 阅读 · 0 评论 -
判断一棵树是不是另外一棵树的子树(dfs)
链接:http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking/*struct TreeNode { int val;原创 2016-03-23 17:04:04 · 581 阅读 · 0 评论 -
c++覆盖 重载 隐藏 的关系
重载: 只有在 同一类定义中的同名成员函数才存在重载关系 ,主要特点是函数的参数类型和数目有所不同 ,但 不能出现函数参数的个数和类型均相同,仅仅依靠返回值类型不同来区分的函数,这和普通函数的重载是完全一致的。另外,重载和成员函数是否是虚函数无关覆盖: 在派生类中覆盖基类中的同名函数,要求两个函数的参数个数、参数类型、返回类型都相同,且基类函数必须是虚函数原创 2016-04-06 19:55:50 · 306 阅读 · 0 评论