随笔分类 - 常见面试题
摘要:位运算求两个数的平均值:解决的是两个数相加结果会溢出的情况;1.先看一个代码:位运算求两个数的平均值:int AverageForTwoNumber(int a,int b){ return ((a&b) + ((a^b) >> 1));}void Test(){ c...
阅读全文
摘要:题目:求一个数的整数次方。题目是如此的简单,但是需要考虑的还是比较多:1.指数为负,底数是零;2.指数底数都是零;3.返回正常零和返回错误零的区别;4.底数为正,指数为负如何处理;5.考虑底数次方大的话,想效率问题;6.处理double数值相等问题;以下直接是代码,详...
阅读全文
摘要:说删链表节点,第一时间想到就是遍历整个链表,找到删除节点的前驱,改变节点指向,删除节点,但是,这样删除单链表的某一节点,时间复杂度就是O(n),不符合要求;时间复杂度是O(n)的做法就不说了,看看O(1)的写法,看图:删除节点,需要找到被删节点的前驱,上面的说明,交换...
阅读全文
摘要:快速排序,纵观各类技术博客,关于快速排序,方法很多,各有千秋,但是,我拙见:快速排序需要用递归,二分,分治的思想去操作,那么在这其中,就需要找一个基准,通过这个基准,把序列分开,达到可以用分治的思想取解决的目的;能看到这里的,基本对快排都有个了解,不多说,盗了几个图看...
阅读全文
摘要:想准备将所有的排序算法都总结出来,方便你查阅,也方便我复习和记忆,下面来说桶排序:首先必须申明,桶排序和计数排序完全不同,不可混为一谈:(这里实例用单链表来操作)还是老方法,看文字就是烦,直接上图,图文结合,永远都是王道:1.假设:桶待排序列:{ 49, 38, 35...
阅读全文
摘要:说是原创,差不多算是转载了,我也是看了好多大牛的写法,大牛的建议,自己加一总结,形成代码:实现一个简洁版的string类,我觉得,下面的也够了:另外需要参见另外的写法:http://blog.csdn.net/li_ning_/article/details/5128...
阅读全文
摘要:没什么说的,常规思路:函数原型:const char* StrStr(const char *str1, const char *str2)方法一:str1:源字符串;str2:需要查找的目的字符串;#pragma once#includeconst char* My...
阅读全文
摘要:前面说了用两个栈实现一个队列的算法,现在在写一个反过来的算法:1.算法描述:栈的特点就是先进后出,而队列的特点就是先进先出,基于两者的特点,有了此算法:先看一张图:都喜欢图,图也能直接表达题的意思和本人的意思:图中已经说的很清楚了,多余的方法暂且不说,按以上的图和思路...
阅读全文
摘要:看到这个题目,你第一感觉就是完了,不懂啊,没关系,我们看看什么叫二叉树的镜像,一张图说明:二叉树图还是借用上一篇博客的图:话说二叉树的镜像,用两个图足以说明,我们说图一是图二的一个镜像,也可以说图二的二叉树是图一二叉树的一个镜像看见图中的镜子了没,想想镜子起的作用,镜...
阅读全文
摘要:1.题目描述:将一个二叉搜索树转换成一个双向链表;2.二叉搜索树,直接看图:如图就是一个二叉搜索树的模型,也就是转换函数的入口数据,也是下边函数中即将用到的例子,既然有输入,肯定有输出,先面在看一张图(第三条):3.输入输出模型:右边就是最终的输出结果,5后边是空,下...
阅读全文
摘要:今天看了一个面试题:问new 和 malloc, delete 和 free 的区别,扭捏了半天,也没说完全;现总结如下:1.先看看new 和 delete 看一个例子:void Test (){ int* p4 = new int; // 动...
阅读全文
摘要:原题:用两个栈实现一个队列。思想:1.栈的特点不就是 先进后出,队列的特点就是先进先出。2.用两个栈实现先进先出的功能;图示:假设入队数据为 : 1,2,3,4,5,6,,红色方框中的 push 和 pop 等效为队列的push 和 pop1.push就和栈stack...
阅读全文
摘要:关于二叉树的重建,我总结如下,并以图文的形式展示:一颗二叉树,已知先序遍历和中序遍历,要求还原出二叉树,问题不难,关键是细节:思想:1、先序遍历序列的第一个元素一定定是根节点,可以由此获取二叉树的根节点。2、在中序遍历序列中查找到根节点,由中序遍历的性质可知,中序遍历...
阅读全文
摘要:这样的链表问题时不时的出现,你有没有特定的方法去处理呢:以下给出你可能用到的算法:第一种:改变链表的结构思想:1.从尾到头打印链表,那就逆置链表呗2.打印逆置后的链表;这个简单,直接上代码:void PrintListRevers(ListNode* pHead){ ...
阅读全文
摘要:背景:网络编程中,如果说URL参数中含有特殊字符,就拿空格说,可能导致服务器端无法获得正确的的参数值,这个时候就需替换。1.空格,替换成%202.#被替换成%23,等下边看看,以字符串中空格被替换成%20的场景:例子为 替换 we are happy 中的空格;总体思...
阅读全文
摘要:转载自:http://hovertree.com/h/bjaf/cppmianshi.htm 1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译...
阅读全文
摘要:题目为:在二维数组中,每一行从左到右递增,每一列都从上到下递增,写一个函数,输入这样一个数组和一个整数,判断这个数组中是不是有这个数字:思想:1.基本思想,最笨无非就是遍历这个二维数组嘛2.全部遍历的话,题目给的从左到右,从上到下的条件就没有用到,所以,全部遍历显然不...
阅读全文
摘要:声明一个字符串类,为这个类型添加赋值运算符class MyString{public: //构造函数 MyString(char* pData = NULL); //构造函数 MyString(const MyString& str); //析构函数 ...
阅读全文
摘要:入编程这一行之初,便常听人说,要多动手写代码。可要怎么写列?写些什么列?做些什么列?c语言程序设计100例,太过基础,入门之后,挑战性不够。直接做项目,初学者则需花费大量的时间与精力、且得有一定能力之后。 于是,这份精选微软等公司数据结构+算法面试100题的资...
阅读全文
摘要:关于decltype操作符的说明:1、在C++中,decltype作为操作符,用于查询表达式的数据类型。decltype在C++11标准制定时引入,主要是为泛型编程而设计,以解决泛型编程中,由于有些类型由模板参数决定,而难以(甚至不可能)表示之的问题。泛型编程在整个1...
阅读全文

浙公网安备 33010602011771号