給你乙個整數陣列 arr ,你一開始在陣列的第乙個元素處(下標為 0)。
每一步,你可以從下標 i 跳到下標:
i + 1 滿足:i + 1 < arr.length
i - 1 滿足:i - 1 >= 0
j 滿足:arr[i] == arr[j] 且 i != j
請你返回到達陣列最後乙個元素的下標處所需的 最少操作次數 。
注意:任何時候你都不能跳到陣列外面。
import j**a.util.*;
class solution
queuequeue = new linkedlist<>();
map> graph = new hashmap<>();
for (int i = 0; i < arr.length; ++i)
graph.get(arr[0]).remove(0);
queue.offer(new info(0, 0));
while (!queue.isempty())
for (integer to : graph.getordefault(arr[node.index], collections.emptyset()))
graph.remove(arr[node.index]);
if (node.index - 1 >= 0 && graph.containskey(arr[node.index - 1]))
if (node.index + 1 < arr.length && graph.containskey(arr[node.index + 1]))
}return -1;
}}class info
}
leetcode 1345 跳躍遊戲 IV
給你乙個整數陣列 arr 你一開始在陣列的第乙個元素處 下標為 0 每一步,你可以從下標 i 跳到下標 i 1 滿足 i 1 arr.length i 1 滿足 i 1 0 j 滿足 arr i arr j 且 i j請你返回到達陣列最後乙個元素的下標處所需的最少操作次數 注意 任何時候你都不能跳到...
跳躍遊戲 IV
問題描述 給你乙個整數陣列 arr 你一開始在陣列的第乙個元素處 下標為 0 每一步,你可以從下標 i 跳到下標 i 1 滿足 i 1 arr.length i 1 滿足 i 1 0 j 滿足 arr i arr j 且 i j 請你返回到達陣列最後乙個元素的下標處所需的最少操作次數 注意 任何時候...
LintCode 跳躍遊戲 I VS跳躍遊戲 II
陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...