《剑指offer》
123.56.119.133:8090
http://123.56.119.133:8090/
展开
-
输入一个链表的头结点,从尾到头反过来打印出每个节点的值。
题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 利用栈的性质。 void PrintList(SListNode * &ppHead) { std:: stack Nodes; SListNode* cur = ppHead ; while (cur) {原创 2016-05-11 13:26:06 · 513 阅读 · 0 评论 -
剑指offer01-二维数组中查找
闲来无事,刷一刷题,思路是从左下到右上进行查找,因为首先数组是有序的,所以左下到右上这条线的数据的特征是:当前行中最小的,同时又是当前列中最大的,所以可以用这条线上的值进行比较大小,从而排除一行或一列的信息,所以效率相对较高。代码写的教随意,见谅 public class Solution { public static boolean Find(int target, i...原创 2018-10-13 00:07:38 · 119 阅读 · 0 评论 -
剑指offer--字符串排列
#include using namespace std; void Permutation(char* pstr, char* pbegin) { if (*pbegin == '\0') printf("%s\n", pstr); else { for (char* pch = pbegin; *pch != '\0'; ++pch) { char temp = *pc原创 2016-09-06 15:18:36 · 274 阅读 · 0 评论 -
《剑指offer》面试3:二维数组查找(杨氏矩阵查找)
题目:在一个二维数组中,行从左到右递增,列从上到下递增。请完成一个函数进行查找 #define _CRT_SECURE_NO_WARNINGS 1 #include using namespace std; bool find(int *array, int rows, int columns, int goal) { bool foun原创 2016-05-03 17:48:45 · 258 阅读 · 0 评论 -
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如输入前序遍历{ 1,2, 4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}则重建出图2.6所示的二叉树并输出它的头结点。 #pragma once #include struct BTNode { int valu原创 2016-05-13 13:48:36 · 182 阅读 · 0 评论 -
用来两个栈实现一个队列。
题目:用来两个栈实现一个队列。 #include template class CQueue { public: void AppendTail(const T& Node) { _s1.push( Node); } void DeleteHe原创 2016-05-13 18:16:54 · 194 阅读 · 0 评论 -
《剑指offer》 02 单例模式
题目:设计一个类,我们只能生成该类的一个实例。 不好的解法一:只适用于单线程环境。 思路:将构造函数设置为私有,利用静态指针,如果指针为空(是否为第一次),就创造。 class CSingleton { private: CSingleton() //构造函数是私有的 {} static CSingleton *m原创 2016-05-02 11:50:27 · 208 阅读 · 0 评论 -
《剑指offer》01 赋值运算符函数
sizeof(一个空类)为什么不是0? 答:空类型的实例不包含任何信息,本应该是0,但是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。 调用构造函数和析构函数秩序要知道函数的地址,这些函数的地址只与类型相关,而与类型的实例无关。 如果把析构函数标记为虚函数呢? 答:会生成虚函数表,并在该类型的每个实例中添加一个指向该虚函数表的指针。32位,4字节 64位原创 2016-05-01 15:48:28 · 268 阅读 · 0 评论 -
请实现一个函数,把字符串中的每个空格换成20%
#include #include #include void ReplaceBlank(char arr[]) { int len = strlen(arr); if (arr == NULL&&len <= 0) //临界条件 return; int BlankCount = 0; for (int i = 0; i < len; i++) { if (arr[i]原创 2016-05-10 17:44:51 · 696 阅读 · 0 评论 -
重建二叉树
二叉树重建 根据二叉树的前序遍历和中序遍历,重建二叉树。综合利用前序遍历和中序遍历的特点。 /* * 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}, 则重建二叉树并返回。 */ class TreeNode {...原创 2018-10-28 15:41:57 · 115 阅读 · 0 评论