技术面:

项目介绍

写代码:

1. 排序算法会哪些?写一个快排?

2. 字符串中的每一个单词进行反转?

3. 一个数组,求连续最大和?

思路:

根据sum判断,如果sum>0说明sum对于后面的求和有加成,所以加上sum;否则看sum当前的数哪一个大保留哪一个数;

然后,比较sum和Max的大小,如果sum>Max就把sum赋值给Max;

代码如下:

//连续最大和
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
const int maxn = 5005;

int main()
{
	int n;
	cin>>n;

	int x;
	vector<int> vec;
	for(int i=0;i<n;i++){
		cin>>x;
		vec.push_back(x);
	}

	int sum=vec[0];
	int Max=vec[0];//最好不要和max函数同名,否则后边调用max函数会出错

	for(int i=1;i<n;i++){
		if(sum>=0){
			sum=sum+vec[i];
		}
		else{
			sum=max(sum,vec[i]);
		}
		if(Max<sum){
			Max=sum;
		}
	}

	cout<<Max<<endl;

	system("pause");
	return 0;
}

 

4. 树的三种遍历,会写吗?说可以写出递归遍历的方法,最后没让写。