bobo老师,麻烦帮忙看一下下面这个问题
leetcode本地执行是对的,提交不对了

下面是我代码:
/**
* @param {number[]} nums
* @return {number}
*/
let res = 0;
var reversePairs = function(nums) {
sort(nums,0,nums.length-1);
return res;
};
var sort = function(nums,l,r){
if(l>=r){
return;
}
let min =parseInt(l + (r - l) / 2);
sort(nums,l,min);
sort(nums,min+1,r);
if(nums[min]>nums[min+1]){
merge(nums,l,min,r);
}
}
var merge = function(nums,l,min,r){
let tmp = [];
for(let j=l;j<=r;j++){
tmp.push(nums[j])
}
let i = l;
let k = min+1;
for(let p = i;p<=r;p++){
if(i>min){
nums[p] = tmp[k-l];
k++;
}else if(k>r){
nums[p] = tmp[i-l];
i++
}else if(tmp[i-l]<=tmp[k-l]){
nums[p] = tmp[i-l];
i++
}else{
res+=min-i+1;
nums[p] = tmp[k-l];
k++
}
}
}
29
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2021-07-09 16:59:44
这是哪个问题?给我一下题号或者题目链接,谢谢。
==========
Leetcode 会使用你的程序多次执行多个测试用例。所以最好不要使用全局变量,不然一个测试用例的结果会被带到下一次测试中。
对于你的程序,每次运行前重置一下 res 即可:
var reversePairs = function(nums) {
res = 0; // 这里重置 res
sort(nums,0,nums.length-1);
return res;
};继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星