再加一个数 ,范围变为 R = 2*R+1;
class Solution {
public:
int minPatches(vector<int>& nums, int n) {
int L = nums.size();
long long MAX = 0; // 可以到达的最大值
long long N = n;
int ans = 0;
int id = 0;
while(MAX < N && id < L){
if(MAX + 1 >= nums[id]){
MAX += nums[id++];
}else{
ans ++;
MAX += MAX + 1;
}
}
if(MAX >= N) return ans;
while(MAX < N){
ans++;
MAX += MAX+1;
}
return ans;
}
};