面试题
-
C++面试题汇集
1.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以
-
剑指Offer面试题:13.合并两个排序的链表
一题目:合并两个排序的链表二代码实现将链表换成数组做简单的循环和递归测试(1)循环实现(2)递归实现
-
剑指Offer面试题:12.链表的倒数第K个结点
一题目:链表的倒数第K个结点二解题思路抛开常规解法,采用只遍历一次就能找到倒数第k个结点,可以定义两个指针:(1)第一个指针从链表的头指针开始遍历向前走k-1,第二个指针保持不动;(2)从
-
剑指Offer面试题:11.调整数组顺序使奇数位于偶数前面建议收藏
一题目:调整数组顺序使奇数位于偶数前面二解题思路如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在
-
剑指Offer面试题:8.二进制中1的个数建议收藏
一题目:二进制中1的个数二可能引起死循环的解法00001010>>2=0000001010001010>>3=11110001那么,问题来了:上面的方法如果输入一个
-
剑指Offer面试题:10.数值的整数次方
一题目:数值的整数次方二实现思路(1)当指数为负数的时候:可以先对指数求绝对值,然后算出次方的结果之后再取倒数。(2)当底数(base)是零且指数是负数的时候:通过全局代码或异常告诉调用者参
-
剑指Offer面试题:9.打印1到最大的n位数
一题目:打印1到最大的n位数二不考虑大数解法三字符串模拟算法解法解决这个问题需要表达一个大数。最常用也是最容易的方法是用字符串或者数组表达大数。该算法的步骤如下:Step1.把字符串中的
-
剑指Offer面试题:7.斐波那契数列
一题目:斐波那契数列二效率很低的解法很多C/C++/C#/Java语言教科书在讲述递归函数的时候,大多都会用Fibonacci作为例子,因此我们会对这种解法烂熟于心上述递归的解法有很严重的效
-
剑指Offer面试题:6.旋转数组中的最小数字建议收藏
一题目:旋转数组中的最小数字这道题最直观的解法并不难,从头到尾遍历数组一次,我们就能找出最小的元素。这种思路的时间复杂度显然是O(n)。但是这个思路没有利用输入的旋转数组的特性,肯定达不到面试官的
-
剑指Offer面试题:5.重建二叉树
一题目:重建二叉树二思路先根据前序遍历序列的第一个数字创建根结点,接下来在中序遍历序列中找到根结点的位置,这样就能确定左、右子树结点的数量。在前序遍历和中序遍历的序列中划分了左、右子树结点的值