中英繁网站源码,大航母网站建设费用,网页版梦幻西游嗜血狂魔攻略,wordpress模板的幻灯片给定一个数组 nums #xff0c;如果 i j 且 nums[i] 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
你需要返回给定数组中的重要翻转对的数量。
示例 1:
输入: [1,3,2,3,1] 输出: 2
代码
class Solution {public int reversePairs(int[] nums) {return getR…给定一个数组 nums 如果 i j 且 nums[i] 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
你需要返回给定数组中的重要翻转对的数量。
示例 1:
输入: [1,3,2,3,1] 输出: 2
代码
class Solution {public int reversePairs(int[] nums) {return getReversePairs(nums,0,nums.length-1);}public int getReversePairs(int[] nums,int l,int r) {if(lr) return 0;int mid(lr)/2;int retgetReversePairs(nums, l, mid)getReversePairs(nums, mid1, r);//将左右数组排序并统计结果int il,jmid1;while (imid)//统计左右数组的反转对{while (jr(long)nums[i]2*(long)nums[j])j;retj-mid-1;i;}int []tempnew int[r-l1];int p0,p1l,p2mid1;while (p1mid||p2r)//归并{if(p1mid)temp[p]nums[p2];else if(p2r)temp[p]nums[p1];else if(nums[p1]nums[p2])temp[p]nums[p2];else temp[p]nums[p1];}for(int k0;ktemp.length;k) nums[lk]temp[k];//写回原来数组return ret;}
}