leetcode 51 数组中的逆序对
2021-01-25 13:13
标签:先进后出 copy 长度 需要 += 讲解 空间 str 多少 官方解法带视频讲解,推荐先看视频再来看本文的讲解 https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/solution/shu-zu-zhong-de-ni-xu-dui-by-leetcode-solution/ 采用归并思想的分治法 可以发现在逆序数组中如5-4-3-2-1中的逆序对为4+3+2+1 计算过程主要是在不同阶段的情况下不断计算,归并方法刚好是在不同的区间范围内进行的再排序,所以我们可以考虑归并方法 核心思想其实是将所有的数字不断二分,直到所有的长度均为1的大小的数组,然后逐渐向上进行归并,注意这里的逻辑是先进后出的思想。 由于两个有序的数组(A、B)进行归并的时候,分别从头开始向后遍历,将较小的放入数组中,且如果存在逆序就加上相应的逆序数值; 逆序数值的计算方法是如果A>B可以构成逆序,在将B放入数组的同时看B前面一共有多少个数字,数量即为此时的逆序数值,类似上面例子中的4+3+2+1中的3等。 注意 当两个较大的int数字求平均的时候容易溢出,所以用left+(right-left)/2的方法进行计算平均值。 count的计算依赖于计算索引间距。 循环以及函数边界的传递多为闭区间,尤其在循环的时候需要注意。 时空复杂度 leetcode 51 数组中的逆序对 标签:先进后出 copy 长度 需要 += 讲解 空间 str 多少 原文地址:https://www.cnblogs.com/sjh-dora/p/12861253.html
public class Solution {
public int reversePairs(int[] nums) {
int len=nums.length;
if(len){//如果只有0个或1个说明不存在
return 0;
}
int []copy=new int[len];
for(int i=0;i
文章标题:leetcode 51 数组中的逆序对
文章链接:http://soscw.com/index.php/essay/46804.html