#include <leetcode.h>
|
static int | minJumps (vector< int > &arr) |
|
◆ minJumps()
int leetcode::jump_game_iv::Solution::minJumps |
( |
vector< int > & |
arr | ) |
|
|
static |
在文件 leetcode.cpp 第 1204 行定义.
1205 if(arr.size() == 1) {
1208 auto pq = queue<pair<int, int>>();
1209 auto *flag =
new bool[arr.size()];
1210 memset(flag, 0, arr.size() *
sizeof(
bool));
1211 auto um = unordered_map<int, vector<int>>();
1212 for(
int i = 0; i < arr.size(); i++) {
1213 if(!um.contains(arr[i])) {
1214 auto vec = vector<int>();
1216 um.insert(pair(arr[i],
vec));
1218 um[arr[i]].push_back(i);
1221 pq.push(pair(0, 0));
1223 while(!pq.empty()) {
1224 auto [current_i, current_count] = pq.front();
1226 if(current_i == arr.size() - 1) {
1227 return current_count;
1229 if(um.contains(arr[current_i])) {
1230 for(
auto i: um[arr[current_i]]) {
1231 if(i != current_i && !flag[i]) {
1232 pq.push(pair(i, current_count + 1));
1237 um.erase(arr[current_i]);
1238 if(current_i - 1 >= 0 && !flag[current_i - 1]) {
1239 pq.push(pair(current_i - 1, current_count + 1));
1240 flag[current_i - 1] =
true;
1242 if(current_i + 1 < arr.size() && !flag[current_i + 1]) {
1243 pq.push(pair(current_i + 1, current_count + 1));
1244 flag[current_i + 1] =
true;
引用了 pat::a::a7_2::vec.
被这些函数引用 leetcode::jump_game_iv::TEST().
该类的文档由以下文件生成: