虽说是简单题,但还是wa了2次,第三次才成功,感觉这种题不踩多几次坑都不可能一次性ac,坑简单但就是无法避免踩了,下次一定注意。
附上第一次ac的渣渣代码
还可以使用数组继续优化,减少代码行
class Solution {
public:
int tribonacci(int n) {
long long int t0=0;
long long int t1=1;
long long int t2=1;
if(n==0)
return t0;
else if(n==1)
return t1;
else if(n==2)
return t2;
for(int i=0;i<n/3;i++)
{
t0=t2+t1+t0;
t1=t0+t2+t1;
t2=t1+t0+t2;
}
if(n%3==0)
return t0;
else if(n%3==1)
return t1;
else
return t2;
}
};//first try
美化版本
class Solution {
public:
int tribonacci(int n) {
long long int t[3]={0,1,1};
if(n<3)
return t[n];
for(int i=0;i<n/3;i++)
{
t[0]=t[2]+t[1]+t[0];
t[1]=t[0]+t[2]+t[1];
t[2]=t[1]+t[0]+t[2];
}
return t[n%3];
}
};
本文作者分享了一次解决Tribonacci数列问题的实战经历,强调了代码中易错点和优化技巧。通过从WA到AC的心得,提醒读者注意常见陷阱,并展示了如何通过数组简化代码。
1123

被折叠的 条评论
为什么被折叠?



