Why is scala much slower than c++ for the same logic

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 ms

2.) 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 ms

Can the scala code be written in a way that the runtime is reduced?

Comments (0)