【发布时间】:2020-11-24 16:23:57
【问题描述】:
这是我的问题:
给定一个非负整数数组,您最初位于数组的第一个索引处。
数组中的每个元素代表您在该位置的最大跳跃长度。
确定您是否能够到达最后一个索引。
这是我的代码:
class Solution {
public:
bool canJump(vector<int>& nums) {
int index=nums.size()-1;
bool ans=dfs(nums,0);
return ans;
}
bool dfs(vector<int>&nums,int start)
{
if(start>=0 && start<nums.size())
{
if(start == nums.size()-1)
{
return true;
}
if(nums[start] == 0)
{
return false;
}
else if(start>=nums.size())
{
return false;
}
for(int i=1;i<=nums[start];i++)
{
bool check = dfs(nums,start+i);
if(check == true)
{
return true;
}
}
}
return false;
}
};
但是我在最后一个测试用例上得到了 tle: 这是最后一个测试用例
如何优化我的代码?请帮忙
谢谢。
【问题讨论】:
-
Tea Lost Exception?请不要使用只有使用在线编程竞赛的人才能理解的首字母缩略词。还请提供minimal reproducible example 完整代码、输入和预期输出 -
经验法则:Time Limit Exceeded errors 通常意味着您使用的是慢速算法或实现,并且您应该使用更快的算法。