
面试/笔试 题
kyan_
这个作者很懒,什么都没留下…
展开
-
题7:旋转数组中的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组中最小的元素。例如:数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小元素为 1 。使用两个指针,一个指向数组的开始,一个指向数组的末尾,那么一般情况下(存在特例)数组的首元素 会 大于数组的末尾元素。当 中间元素 大于 数组首元素 时,中原创 2018-01-30 21:35:46 · 264 阅读 · 0 评论 -
题9:斐波那契数列
题目:写一个函数,输入n,求斐波那契数列的第n项。 首先很容易能想到用递归的方法,但是递归又很多的重复运算,如果n很大,程序的效率就会很低,所以我们可以把每个数都保存下来,这样的话,会改进很多。用循环就可以解决。#include using namespace std;long long Fibonacci(unsigned int n){ int result[2]原创 2018-02-07 16:24:20 · 378 阅读 · 0 评论 -
题6:用两个栈实现队列
题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。using namespace std;template typename T>class MyQueue{public: MyQueue(); ~MyQueue(); void appendT原创 2018-01-28 20:02:32 · 337 阅读 · 0 评论 -
题5:从尾到头打印链表
从尾到头打印链表有很多种办法。可以逆序然后遍历打印,但是如果不让改变链表结构,这时我们就要想怎么打印才更好。遍历的同时把数据放入一个栈中,遍历结束再遍历栈便可完成倒叙。但是这种结构就会让我们想到 递归。递归的使用可以完全简化了程序。struct LinkNode{ int Data; LinkNode * next;};void PrintReverse(L原创 2018-01-24 21:17:02 · 218 阅读 · 0 评论 -
题4:替换空格
请实现一个函数,把字符串中的每个空格替换为“%20”。 例如字符串为“We Are Happy” 转换为“We%20Are%20Happy”我们要注意,空格转化为%20,长度也会有所改变。#include using namespace std;void ReplaceBlank(char *str, int length) { if(str == NULL && le原创 2018-01-24 20:26:41 · 231 阅读 · 0 评论 -
题3:二维数组的查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的个二维数组和一个整数,判断数组中是否含有该整数。例: 比如,此时要寻找数字2。 从右上角开始寻找,6大于2,6这一列其他数肯定大于6,即可以排除这一列。往前一列5大于2,再往前3大于2,即可排除这两列。1小于2,应往下,2=2,找到。#include us原创 2018-01-24 10:28:40 · 184 阅读 · 0 评论 -
题2:实现singleton模式
题目: 设计一个类,我们只能生成一个实例。第一个,是程序一开始便自动生成一个对象。这虽正确,但并不合理。#include using namespace std;class UserManager{private: UserManager() {}public: static UserManager *Getp() { coun原创 2018-01-23 21:42:01 · 195 阅读 · 0 评论 -
题1:赋值运算符重载
为MyStr添加赋值运算符操作。因为原题中只有类的大体框架,我就自己写了一个类和一个完整的函数。#include #include using namespace std;class MyStr // 因为程序中没有用到拷贝构造和析构, 我省略了{public: MyStr &operator = (const MyStr &str); MyStr原创 2018-01-23 20:57:07 · 406 阅读 · 0 评论 -
题8:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1
题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1#include #include void Bubble(float a[], int length){ int i, j; for(i = 0; i 1; i++) {原创 2018-01-30 21:51:56 · 512 阅读 · 0 评论 -
题10:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9 表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。思路:我们先一步步分析。如果最后一位是1,减去1就会变成0,左边的其他的数字都不会改变。如果最后一位是0,减去1就会最后位的1变成0,而1位之后的所有0变成1,左边其他数不变。 根据上面说的,我们继续分析。不管是什么状况,我们发现整数减去1,就是把最右原创 2018-02-07 17:28:39 · 315 阅读 · 0 评论