bobo老师,麻烦帮忙看一下下面这个问题

bobo老师,麻烦帮忙看一下下面这个问题

leetcode本地执行是对的,提交不对了

http://img1.sycdn.imooc.com//climg/60e806d009fe220125701390.jpg

下面是我代码:


/**
* @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++
}

}
}


正在回答 回答被采纳积分+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 星
算法与数据结构
  • 参与学习       2633    人
  • 解答问题       1105    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师