中国电信云计算第三题输入求解
最后还是没搞出来的我……求各位大佬指点,以前也经常 case通过百分之零 现在想想说不准都是输入的问题
说一下自己的写法或者我哪里错了都好
(づ ̄3 ̄)づ╭❤~爱你们么么哒
输入:[2, 4, -5, 7, -8]
我的代码:
#include<iostream>
#include<map>
#include<vector>
#include<set>
#include <stdio.h>
#include <string>
using namespace std;
int max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
string a;
getline(cin, a);//
vector<int> num;
for (int i = 0; i < a.size(); i++)
{
if (a[i] >= '0' && a[i] <= '9')
{
num.push_back(a[i] - '0');
}
if (a[i] == '-')
{
int tmp = a[++i] - '0';
num.push_back(0 - tmp);
}
}
int res = 0-99999;
int cur = 0;
for (int i = 0; i < num.size(); i++)
{
cur = max(cur + num[i], num[i]);
res = max(cur, res);
}
cout << res;
return 0;
}
#笔试题目##天翼云##include<map>
#include<vector>
#include<set>
#include <stdio.h>
#include <string>
using namespace std;
int max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
string a;
getline(cin, a);//
vector<int> num;
for (int i = 0; i < a.size(); i++)
{
if (a[i] >= '0' && a[i] <= '9')
{
num.push_back(a[i] - '0');
}
if (a[i] == '-')
{
int tmp = a[++i] - '0';
num.push_back(0 - tmp);
}
}
int res = 0-99999;
int cur = 0;
for (int i = 0; i < num.size(); i++)
{
cur = max(cur + num[i], num[i]);
res = max(cur, res);
}
cout << res;
return 0;
}