1.九连环接环问题
代码如下:
#include<iostream>
using namespace std;
int N;
class Ring {
public:
void UpRing(int n);
void DownRing(int n);
};
void Ring::UpRing(int n) {
if (n == 2) {
cout << "U1,2" << endl;
return;
}
if (n > 1)UpRing(n - 1);
if (n > 2)DownRing(n - 2);
cout << "U" << n << endl;
if (n > 2)UpRing(n - 2);
}
void Ring::DownRing(int n) {
int k = n;
if (n == 1) {
cout << "D1" << endl;
return;
}
else if (n == 2) {
cout << "D1,2" << endl;
return;
}
if (n > 2)DownRing(n - 2);
cout << "D" << n << endl;
if (n > 2) {
UpRing(n - 2);
if (n == N) {
return;
}
}
if (n > 1)DownRing(n - 1);
}
int main() {
int n;
cin >> n;
if (n > 0 && n <= 9) {
N = n;
Ring r;
r.DownRing(n);
}
Ring r;
return 0;
}
2.积分游戏问题:在线处理求连续最大子列和
#include <iostream>
using namespace std;
const int maxn = 10000;
int main() {
int person,n,a[maxn];
int thisScore = 0;
int maxScore = -1;
cin >> person >> n;
int lefti = -1, righti = -1;
int t=0;
for (int i = 0; i < n; i++) {
cin >> a[i];
thisScore += (person - a[i]);
if (thisScore > maxScore) {
maxScore = thisScore;
lefti = t;
righti = i;
}
else if (thisScore < 0) {
thisScore = 0;
t = i + 1;
}
/* if (maxScore < 0) {
maxScore = 0;
lefti = 0;
righti = n - 1;
}*/
}
cout <<lefti+1<<" "<<righti+1<<" "<<maxScore<<endl;
}
3.没做出来
一面凉经:
1.柠檬微趣公司的宾果消消消,是我曾经最爱玩的游戏,今天要卸载了,不知道他们怎么进去的柠檬微趣,面试好难。
2.上来就是经典面试问题的罗列,本来想通过项目介绍来鼓吹实习和项目呢。完全被问懵的状态。
- c++ &算法题:
1.sizeof(数组)和sizeof(指针)的区别
2.函数传值和传引用的区别?
3.内联函数
3.如何求根号2–二分法
4.快排的时间复杂度、最坏和最好的时间复杂度;快排是否稳定?为什么是稳定的?
5.平衡树和普通二叉树的区别?为什么使用平衡树?
几个问题下来,面试官充满了鄙视。。。问我到底会啥,数据库行不。。。我说可以吧。。。
- 数据库
1.什么是脏读
2.数据库的三大范式–回答出两个 第二范式让举例子(举了订房间的例子)
数据库回答出来了,就问网络了解不,对话如下:? - 网络技术:“网络这块你了解嘛?–嗯 也是了解一点 --好吧,那我告诉你,你的面试结束了,这样太差了,很多公司都这么问的,秋招准备太不充分了。你的面试没有通过。”