最近跟着学校的课在学递归,就用递归做了,代码量挺少的,但是总觉得好暴力hhh
其实就是在求最小血量的那个最低点。
(主要是数和数组都开的很大,运行完内存也占得大,可能是还有更好的做法也有可能是小白还没习惯)
#include<iostream>>
using namespace std;
int blood;
long int FightWithDragon(long int n,int *a)
{
if(n<=0) return 0;
int now_blood = a[n-1]+FightWithDragon(n-1,a);
blood = min(now_blood,blood);
return now_blood;
}
int main()
{
long int n;
int a[100001];
long int need_blood;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
FightWithDragon(n,a);
need_blood = abs(blood) + 1;
cout<<need_blood<<endl;
return 0;
}