逆序的一个题目

https://leetcode.com/problems/count-of-smaller-numbers-after-self/?tab=Description

这道题目,比求出整体逆序个数,更多一个,是求出每一个位置的逆序个数。

这是根据MergeSort的常规解法:

https://discuss.leetcode.com/topic/31162/mergesort-solution

只不过排序的时候,是反过来的。是从尾部开始放置,然后每个元素放置到尾部的时候,记录下跨过了多少位置。

这是另一种,根据树状结构的:

https://discuss.leetcode.com/topic/31405/9ms-short-java-bst-solution-get-answer-when-building-bst

另外,逆序的求法,可以看下面的:

http://blog.csdn.net/dlengong/article/details/7594919

关键有几点:

1. 

基本框架:

  1. MergeSort(array,first,med);  
  2.     MergeSort(array,med+1,last);  
  3.     Merge(array,first,med,last);  

然后在Merge里面计算逆序个数。

2.

Merge的时候,需要使用一个新的数组来放置合并的元素。

原文地址:https://www.cnblogs.com/charlesblc/p/6457880.html