美团面试题,最大字符串问题

来源:互联网 发布:宿迁市网络问政 编辑:程序博客网 时间:2024/06/05 16:16

题目:给定一个长度为n的序列,求这个序列的子串的和等于k的最大长度

case1:

5

1 2 3 4 5

5

out

5

case2:

6

3 1 2 7 7 7

4

out:

5

#include<iostream>

#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int sum(vector<int> a)
{
int sum = 0;
for (int i = 0; i < a.size(); i++)
{
sum = sum+a[i];
}
return sum;
}
int main()
{
int n, k, temp;
vector<int> a;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> temp;
a.push_back(temp);
}
cin >> k;
for (int i = n;i>0; i--)
{
for (int j = 0; j < (n + 1 - i);j++)
{
vector<int> b;
b.assign(a.begin()+j, a.begin()+i+j);
cout << sum(a) << endl;
if (sum(b) % k == 0)
{
cout << i << endl;
return 0;
}
}
}
int mm = 0;
cout << mm << endl;

}

心得:审题一定要仔细不要慌,当发现自己的思路的复杂度越来越高的时候,一定要整理下思路可能是审题出现问题,审题很重要!!!!!!!!!!!!!!!!!!!

原创粉丝点击