求佬们帮忙看下,两次的测试用例是一样的,为什么结果不对呢?
这道题是
跳跃游戏
我的源代码
class Solution {
public:
int minJumps(vector[HTML_REMOVED]& arr) {
queue[HTML_REMOVED] q;
const int maxn = 5e4 + 10;
int dist[maxn];
dist[0] = 1;
q.push(0);
while(q.size())
{
auto t = q.front();
q.pop();
if(dist[arr.size() - 1]) break;
if(t - 1 >= 0 && !dist[t - 1])
{
dist[t - 1] = dist[t] + 1;
q.push(t - 1);
}
if(t + 1 < arr.size() && !dist[t + 1])
{
dist[t + 1] = dist[t] + 1;
q.push(t + 1);
}
for(int i = t;i < arr.size();i++)
{
if(arr[i] == arr[t] && !dist[i])
{
dist[i] = dist[t] + 1;
q.push(i);
}
}
}
return (dist[arr.size() - 1] - 1);
}
};
int dist[maxn];
memset(dist,0,sizeof dist);
有些时候对于多组数据leetcode会重复地使用数组,你每次得先清空一下
明白了,谢谢佬!
个人推广https://blog.csdn.net/GeekAlice?type=blog