1.) C++ solution for Jumps Game ||
int jump(vector<int>& nums) {
int max_reach = nums[0];
int curr_reach = nums[0];
int ans = 0;
for(int i = 1 ; i < nums.size() ; ++i){
if(curr_reach >= nums.size() - 1)
return ans + 1;
max_reach = max(max_reach,i + nums[i]);
if(curr_reach == i){
++ans;
curr_reach = max_reach;
}
}
return ans;
}
Runtime - 12 ms2.) Scala solution for the same
def jump(nums: Array[Int]): Int = {
var curr_reach = nums(0)
var max_reach = nums(0);
var ans = 0
for(i <- 1 to nums.length - 1){
if(curr_reach >= nums.length - 1)
return ans + 1
max_reach = Math.max(max_reach, i + nums(i))
if(i == curr_reach){
ans = ans + 1
curr_reach = max_reach
}
}
ans
}
Runtime - 448 msCan the scala code be written in a way that the runtime is reduced?