我越來越超出了提交這個問題的時間限制爲什麼我得到超時限?
問:
讓我們考慮數字的三角形,其中一個號碼出現在第一行,兩個數字出現在二線,三中第三行等。開發一個程序,它將計算出現在從頂部朝向底部的路徑上出現的最大數字總和,以便:
在每個路徑上,下一個數字位於行上下面,更確切地說是直接在下面或下面的 和一個地方在右邊;
行數嚴格爲正,但小於100個
所有數字都是O和99之間的正整數
我的代碼:
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int trian(int i,int j);
long long int n,a[100][100];
int main()
{
long long int t,i,j,v,k;
scanf("%lld",&t);
for(i=0;i<t;i++)
{
scanf("%lld",&n);
for(j=0;j<n;j++)
{
for(k=0;k<j+1;k++)
{
scanf("%lld",&a[j][k]);
}
}
v=trian(0,0);
printf("%lld\n",v);
}
}
int trian(int i,int j)
{
if(i>=n)
return 0;
else
return (a[i][j]+(std::max(trian(i+1,j),trian(i+1,j+1))));
}
請添加(最小必要)代碼(重現您的問題)以及對問題的描述。 –
加入@DanielJour – itsayushbansal