技术面:
项目介绍
写代码:
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. 树的三种遍历,会写吗?说可以写出递归遍历的方法,最后没让写。