-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution_45.cpp
38 lines (33 loc) · 1.06 KB
/
Solution_45.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
// Created by houmo on 19-6-30.
//
#include "Solution_45.h"
int Solution_45::jump(vector<int> &nums) {
if(nums.size()<=1){
return 0;
}
else if(nums.size() == 2){
return 1;
}else{
vector<int> jumpIndex = {int(nums.size() - 2), int(nums.size()-1)};
for(int i=int(nums.size() - 3); i>=0; i--){
if(nums[i] < jumpIndex[0]-i){
continue;
}else{
if(nums[i] >= nums.size()-i-1){
jumpIndex.erase(jumpIndex.begin(), jumpIndex.end()-1);
jumpIndex.insert(jumpIndex.begin(), i);
}else{
for(int j=int(jumpIndex.size()-1); j>=0; j--){
if(nums[i] >= jumpIndex[j]-i){
jumpIndex.erase(jumpIndex.begin(), jumpIndex.begin()+j);
jumpIndex.insert(jumpIndex.begin(), i);
break;
}
}
}
}
}
return int(jumpIndex.size() - 1);
}
}