剑指offer
IT呵呵哒
这个作者很懒,什么都没留下…
展开
-
C++
问:定义一个空的类型,里面是没有任何成员的成员和成员函数。对该类型求sizeof,得到的结果是多少?答:1问:为什么不是0答:空的类型的实例中不包含任何信息,本来sizeof应该是0,但是当我们该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用内存的多少则有编译器决定。在Visual Studio,每个空类型的实例占用1字节的空间。问:如果在类型中...原创 2019-02-01 15:53:01 · 128 阅读 · 0 评论 -
赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数class CMyString{public: CMyString(char *pData = nullptr); CMyString(const CMyString& str);private: char *m_pData;};书中有四个方面的考虑,现总结如下:1.返回值的类型是否为该类...原创 2019-02-01 16:30:13 · 2491 阅读 · 0 评论 -
从尾到头打印链表
题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。链表节点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:首先我们肯定需要遍历链表,遍历的顺序是从头到尾,而输出的顺序是从尾到头。这是典型的“后进先出”,我们很容易就能想到栈这种数据结构可以实现这种顺序。每当我们经过一个节点,就把这个节点压入栈...原创 2019-02-14 16:45:57 · 101 阅读 · 0 评论 -
数组中的重复数字
题目:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意重复的数字。例如:如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出的重复的数字2或者3。分析:数组中的数字都在0~n-1之间,如果没有该数组中没有重复的数字,那么数组重新排序之后数字i出现的位置将是数组下标为i的位置...原创 2019-02-04 10:28:44 · 245 阅读 · 0 评论 -
不修改数组找出重复的数字
题目:在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组至少有一个数字是重复的,请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2,3,5,4,3,2,6,7},那么对应的输出是重复的数字2或者3。 分析:此题有两种方法。 方法一:因为不能改变输入的数组,我们可以定义一个长度为n+1的辅助数组,然后根据数组下标逐一把输入的数组的元素...原创 2019-02-04 11:22:59 · 534 阅读 · 1 评论 -
二维数组中的查找
题目:在一个二维数组中,每一行都是按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列递增排序。如果在这个数组中查找数字7,则返回true,如果查找数字5,由于数组不含有该数字,则返回false。1 2 8 92 4 9 124 7 ...原创 2019-02-09 10:37:11 · 172 阅读 · 0 评论 -
字符串
字符串是有若干字符组成的序列。在C/C++中每个字符都以字符‘\0’作为结尾。为了节省内存,C/C++把常量字符放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上回指向同样的内存地址。但用常量内存初始化数组时,指向的内存地址会不一样。分析代码:// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。/...原创 2019-02-10 18:08:11 · 139 阅读 · 0 评论 -
替换空格
题目:请实现一个函数,把字符创中的每个空格替换成“%20”,例如,输入“We are happy”,则输出"we%20are%20happy "。分析:我们可以先遍历一遍这个字符数组,统计出字符数组中的空格数量,并由此计算出替换之后的总长度。从前开始替换时,会有重复的移动。我们可以考虑从后开始替换,定义两个指针P1和P2,P1指向未替换字符数组的末尾,P2指向替换之后的字符数组的末尾,向前移动...原创 2019-02-11 10:28:17 · 126 阅读 · 0 评论 -
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果, 请重建该二叉树。假设输入的前序遍历和中序遍历的结果汇总都不含有重复的数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建如下 1 / \ 2 3 / / \ 4 5 6 \ / 7 ...原创 2019-03-25 21:28:39 · 114 阅读 · 0 评论